co.wrap(function *(filePath, s3Client, s3UploadOpts, {filePrefix, cwd, ext, gzip, index, preventUpdates, console}) { const s3UploadOptions = {...s3UploadOpts}; if (shouldBeZipped(filePath, gzip)) s3UploadOptions.ContentEncoding = 'gzip'; const fileObject = yield readFile(filePath, cwd, s3UploadOptions.ContentEncoding); if (fileObject !== undefined) { const aliases = utils.buildIndexes(fileObject, index); try { yield sync(s3Client, fileObject, filePrefix, s3UploadOptions, preventUpdates); if (aliases && aliases.length > 0) { for (var i = 0; i < aliases.length; i++) { const name = aliases[i]; yield sync(s3Client, fileObject, filePrefix, s3UploadOptions, preventUpdates, name); } } } catch (e) { console.error(e); return; } const fileUploadStatus = yield upload(s3Client, fileObject, s3UploadOptions, filePrefix, ext); if (aliases && aliases.length > 0) { for (var i = 0; i < aliases.length; i++) { const name = aliases[i]; yield upload(s3Client, fileObject, s3UploadOptions, filePrefix, ext, name); } } console.log(fileUploadStatus); } })