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
JavaScript
/* 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
}