UNPKG

node-rigorous

Version:
57 lines (37 loc) 1.39 kB
const fs = require('fs'); const aws = require('aws-sdk'); const RigorousError = require('../facades/RigorousError'); const errorsMessages = require('../etc/errorsMessages'); const option = { bucketS3Name: null, imageExtension: null, }; let localAwsS3 = null; module.exports = { get: () => localAwsS3, init: (optionParam, AWS_SECRET_ACCESS_KEY, AWS_ACCESS_KEY_ID) => { option.bucketS3Name = optionParam.bucketName; option.imageExtension = optionParam.imageExtension; localAwsS3 = new aws.S3({ secretAccessKey: AWS_SECRET_ACCESS_KEY, accessKeyId: AWS_ACCESS_KEY_ID, }); }, uploadFile: async (fileLocalPathImage, fileNameOnAWS, callbackOnError) => { try { const rs = fs.createReadStream(fileLocalPathImage); console.log('START UPLOAD'); const response = await localAwsS3.upload({ Bucket: option.bucketS3Name, Key: `${fileNameOnAWS}.${option.imageExtension}`, Body: rs, ACL: 'public-read', }).promise(); return response.Location; } catch (err) { callbackOnError(fileLocalPathImage); console.log(err); throw new RigorousError(errorsMessages.UploadError, err); } }, };