UNPKG

s3-sdk-lite

Version:

Single line code to upload/get files from S3-Bucket AWS in a simple and easy way.

100 lines (93 loc) 2.12 kB
/* Sahil Kalaigar */ require('dotenv').config() const AWS = require('aws-sdk'); AWS.config.update({ "accessKeyId":process.env.accessKeyId, "secretAccessKey":process.env.secretAccessKey, "region":process.env.region }); const s3Bucket = new AWS.S3( { params: {Bucket: process.env.bucketName} } ); async function fileUploadViaBase64(file_path,base64string) { try { buf = Buffer.from(base64string.replace(/^data:image\/\w+;base64,/, ""),'base64') var data = { Key: file_path, Body: buf, ACL: 'public-read', ContentEncoding: 'base64', ContentType: 'image/jpeg' }; return await s3Bucket.putObject(data).promise(); }catch(err) { return err; } } async function deleteKey(file_path) { try { const params = { Key: file_path }; return await s3Bucket.deleteObject(params).promise(); }catch(err) { return err; } } async function videoUploadViaBase64(file_path,base64string) { try { buf = Buffer.from(base64string.replace(/^data:mp4\/\w+;base64,/, ""),'base64') var data = { Key: file_path, Body: buf, ACL: 'public-read', ContentEncoding: 'base64', ContentType: 'mp4' }; return await s3Bucket.putObject(data).promise(); }catch(err) { return err; } } async function getFiles(key) { try { var params = { Delimiter: '/', Prefix: key } return await s3Bucket.listObjects(params).promise(); }catch(err) { return err; } } async function multipartFileUpload(file_path,buffer) { try { const params = { ACL: "public-read", Body: buffer, Key: file_path, ContentType: 'jpg', }; return await s3Bucket.upload(params).promise(); }catch(err) { return err; } } module.exports={ fileUploadViaBase64, getFiles, videoUploadViaBase64, multipartFileUpload, deleteKey }