import * as AWS from 'aws-sdk'; import * as dotenv from 'dotenv'; dotenv.config(); const S3_ACCESS_KEY_ID = process.env.S3_ACCESS_KEY_ID; const S3_SECRET_ACCESS_KEY = process.env.S3_SECRET_ACCESS_KEY; const BUCKET = 'linkbox-attachments'; export class AWSService { S3: any; constructor() { this.S3 = new AWS.S3({ accessKeyId: S3_ACCESS_KEY_ID, secretAccessKey: S3_SECRET_ACCESS_KEY }) } upload(attachment: any, key: string) { let params = { Body: attachment, Key: key, Bucket: BUCKET } return new Promise((resolve, reject) => { this.S3.putObject(params, (error: any, data: any) => { if (error) return reject(error); return resolve(data) }) }) } }