I need to download and extract gzip file from s3 bucket into memory then I need to upload the files as a folder to S3 bucket using node js
Actually am getting error when I download and extracted into memory.Kindly help me to process the files and upload into s3 without storing on local drive.
function DownloadZipInMemory() {
var bucketName = "my.Testbucket";
var fileKey = "employee.tar.gz";
var params = { Bucket: bucketName, Key: fileKey };
s3.getObject(params)
.on('httpData', function (chunk) {
data.push(chunk);
dataLen += chunk.length;
})
.on('httpDone', function () {
var buf = new Buffer(dataLen);
for (var i = 0, len = data.length, pos = 0; i < len; i++) {
data[i].copy(buf, pos);
pos += data[i].length;
}
var zip = new AdmZip(buf); < == Getting Error
var zipEntries = zip.getEntries();
for (var i = 0; i < zipEntries.length; i++) {
var fileName = zip.readAsText(zipEntries[i]);
// var folderName=?
UploadFilesToS3(folderName, fname)
}
}).send();
}
function UploadFilesToS3(folder, fname) {
var filestream = fs.createReadStream(fname);
var s3 = new AWS.S3({ params: { Bucket: BucketPath } });
fs.readFile(fname, function (err, data) {
s3.upload({
Key: folder + fname
, Body: filestream
// change contentType as needed
, ACL: 'public-read',
})
});
//.......
}
via Sharan
No comments:
Post a Comment