in source/custom-resource/lib/website-helper.js [138:189]
let uploadFile = function(filelist, index, websiteBucket, sourceS3prefix, cb) {
if (filelist.length > index) {
let params = {
Bucket: websiteBucket,
Key: filelist[index],
CopySource: [sourceS3prefix, filelist[index]].join('/'),
};
if (filelist[index].endsWith('.htm') || filelist[index].endsWith('.html')) {
params.ContentType = "text/html";
params.MetadataDirective = "REPLACE";
} else if (filelist[index].endsWith('.css')) {
params.ContentType = "text/css";
params.MetadataDirective = "REPLACE";
} else if (filelist[index].endsWith('.js')) {
params.ContentType = "application/javascript";
params.MetadataDirective = "REPLACE";
} else if (filelist[index].endsWith('.png')) {
params.ContentType = "image/png";
params.MetadataDirective = "REPLACE";
} else if (filelist[index].endsWith('.jpg') || filelist[index].endsWith('.jpeg')) {
params.ContentType = "image/jpeg";
params.MetadataDirective = "REPLACE";
} else if (filelist[index].endsWith('.gif')) {
params.ContentType = "image/gif";
params.MetadataDirective = "REPLACE";
};
s3.copyObject(params, function(err, data) {
if (err) {
return cb(['error copying ', [sourceS3prefix, filelist[index]].join('/'), '\n', err]
.join(
''),
null);
}
console.log([
[sourceS3prefix, filelist[index]].join('/'), 'uploaded successfully'
].join(' '));
let _next = index + 1;
uploadFile(filelist, _next, websiteBucket, sourceS3prefix, function(err, resp) {
if (err) {
return cb(err, null);
}
cb(null, resp);
});
});
} else {
cb(null, [index, 'files copied'].join(' '));
}
};