function uploadFileToS3(filePath, fileName) { let s3Stream = S3Stream(new AWS.S3()); let read = fs.createReadStream(filePath + fileName); let compress = zlib.createGzip(); let upload = s3Stream.upload({ Bucket: "static.smartystreets.com", Key: "sdk/" + version + "/" + fileName, StorageClass: "STANDARD", ContentType: "application/javascript", ContentEncoding: "gzip", }); upload.on("error", e => { throw new e }); upload.on("part", console.log); upload.on("uploaded", console.log); read .pipe(compress) .pipe(upload); }
function uploadToS3(destination, bucket, mime_type, storage_class, gm) { return new Promise((resolve, reject) => { try { const target_stream = S3Stream.upload({ Bucket: bucket, Key: destination, ContentType: mime_type, StorageClass: storage_class, }); const file_type = mime_type.substring(mime_type.indexOf('/') + 1); gm.stream(file_type, (err, stdout, stderr) => { if (err) { return reject({ statusCode: 500, body: `{"message":"${err.message}"}` }); } stdout.on('error', err => reject({ statusCode: 500, body: `{"message":"${err.message}"}` })); stderr.on('data', data => reject({ statusCode: 500, body: `{"message":"${data}"}` })); stdout.pipe(target_stream) .on('uploaded', done => resolve()) .on('error', err => reject({ statusCode: 500, body: `{"message":"${err.message}"}` })); }); } catch (err) { return reject({ statusCode: 500, body: `{"message":"${err.message}"}` }); } }); }