I have this index.js which uses this unzipper module
console.log('Loading function');
const aws = require('aws-sdk');
const s3Client = new aws.S3({ apiVersion: '2006-03-01' });
const unzipper = require("unzipper");
exports.handler = async (event) => {
const bucket = 'bucket_name';
const filename = JSON.stringify(event.Records[0].s3.object.key.replace(/\+/g, ' '), null, 2);
const filepath = filename.substring(0, filename.lastIndexOf("/") + 1);
console.log("Filename: " + filename);
console.log("Filepath: " + filepath);
try {
// the lines of code below is referenced from a tutorial inside the link below this code
const directory = await unzipper.Open.s3(s3Client, { Bucket: bucket, Key: filename });
return new Promise((resolve, reject) => {
directory.files[0]
.stream()
.pipe(s3Client.createWriteStream(filepath))
.on('error', reject)
.on('finish', resolve)
});
} catch (error) {
console.log("Error: ", error.message, error.stack);
}
};
Which is referenced from this tutorial.
But I'm getting this error in my Cloudwatch:
2021-04-15T04:58:12.844Z undefined INFO Loading function
START RequestId: fa89f24c-d6e1-4452-ae1d-ef7246ad0edf Version: $LATEST
2021-04-15T04:58:13.332Z fa89f24c-d6e1-4452-ae1d-ef7246ad0edf INFO Filename: "New folder/New folder/events.zip"
2021-04-15T04:58:13.341Z fa89f24c-d6e1-4452-ae1d-ef7246ad0edf INFO Filepath: "New folder/New folder/
2021-04-15T04:58:14.084Z fa89f24c-d6e1-4452-ae1d-ef7246ad0edf INFO Error: null Forbidden: null
at Request.extractError (/opt/nodejs/node_modules/aws-sdk/lib/services/s3.js:698:35)
at Request.callListeners (/opt/nodejs/node_modules/aws-sdk/lib/sequential_executor.js:106:20)
at Request.emit (/opt/nodejs/node_modules/aws-sdk/lib/sequential_executor.js:78:10)
at Request.emit (/opt/nodejs/node_modules/aws-sdk/lib/request.js:688:14)
at Request.transition (/opt/nodejs/node_modules/aws-sdk/lib/request.js:22:10)
at AcceptorStateMachine.runTo (/opt/nodejs/node_modules/aws-sdk/lib/state_machine.js:14:12)
at /opt/nodejs/node_modules/aws-sdk/lib/state_machine.js:26:10
at Request.<anonymous> (/opt/nodejs/node_modules/aws-sdk/lib/request.js:38:9)
at Request.<anonymous> (/opt/nodejs/node_modules/aws-sdk/lib/request.js:690:12)
at Request.callListeners (/opt/nodejs/node_modules/aws-sdk/lib/sequential_executor.js:116:18)
at Request.emit (/opt/nodejs/node_modules/aws-sdk/lib/sequential_executor.js:78:10)
at Request.emit (/opt/nodejs/node_modules/aws-sdk/lib/request.js:688:14)
at Request.transition (/opt/nodejs/node_modules/aws-sdk/lib/request.js:22:10)
at AcceptorStateMachine.runTo (/opt/nodejs/node_modules/aws-sdk/lib/state_machine.js:14:12)
at /opt/nodejs/node_modules/aws-sdk/lib/state_machine.js:26:10
at Request.<anonymous> (/opt/nodejs/node_modules/aws-sdk/lib/request.js:38:9)
END RequestId: fa89f24c-d6e1-4452-ae1d-ef7246ad0edf
I do not understand if what exactly this error means. For my current level of understanding the AWS methods, it seems insufficient (I'm a newbie at AWS).