AWS S3 Upload
JS
S
JavaScriptUsing AWS SDK for Node.js
1 public uploadFile(filePath: string): Promise<CsvReport> {
2 const tenant = String(process.env.TENANT_CONSTANT).toLowerCase();
3 const key = `${tenant}/reports/${filePath}`;
4 return new Promise((resolve, reject) => {
5 const fileStream = fs.createReadStream(filePath);
6 const params = {
7 ACL: 'private',
8 Body: fileStream,
9 Bucket: `${process.env.S3_BUCKET}`,
10 Key: key,
11 Tagging: 'reportenv=staging'
12 };
13 logService.log('info', 'Uploading file...', { params });
14 AWSService.s3.putObject(
15 params,
16 (err: Error, data: AWS.S3.PutObjectOutput) => {
17 if (err) {
18 logService.log('error', 'failed s3 upload', err);
19 reject(err);
20 } else {
21 logService.log('info', `completed upload`, data);
22 const finalPath = this.buildUploadedFinalPath(filePath);
23 const result: CsvReport = {
24 path: finalPath,
25 aws: data
26 };
27 resolve(result);
28 }
29 }
30 );
31 });
32 }
33}Created on 4/11/2020