I need to zip a set of files from a folder in bucket and download it for the User

October 18, 2017 169 views
Node.js

I am uploading files in various folders in the bucket "managly".
I need to implement a functionality to zip a set of files (as selected by the User) from a folder in bucket and download the zip file for the User.
I tried using "aws-s3-zipper" in Node.js to filter the files from the bucket's folder and then zip it and download.
I get the following error - InvalidAccessKeyId: The AWS Access Key Id you provided does not exist in our records.
Kindly guide me and provide me the code in NodeJS to implement the same.

Code :-

var S3Zipper = require ('aws-s3-zipper');

var config ={
accessKeyId: ACCESSKEYID,
secretAccessKey: SECRETACCESSKEY,
bucket: BUCKET
};

var zipper = new S3Zipper(config);

zipper.filterOutFiles = files; //files is the set of files selected by User

zipper.streamZipDataTo({
pipe: res,
folderName: 'attachments',
startKey: 'null', // could keep null
recursive: true
}
, function (err, result) {
if (err)
console.log(err);
else {
// console.log(result);
var lastFile = result.zippedFiles[result.zippedFiles.length - 1];
console.log('lastFile : ', lastFile)
if (lastFile)
console.log('last key ', lastFile.Key); // next time start from here
}
});

Be the first one to answer this question.