Read file from aws s3 bucket using node fs Read file from aws s3 bucket using node fs node.js node.js

Read file from aws s3 bucket using node fs


You have a couple options. You can include a callback as a second argument, which will be invoked with any error message and the object. This example is straight from the AWS documentation:

s3.getObject(params, function(err, data) {  if (err) console.log(err, err.stack); // an error occurred  else     console.log(data);           // successful response});

Alternatively, you can convert the output to a stream. There's also an example in the AWS documentation:

var s3 = new AWS.S3({apiVersion: '2006-03-01'});var params = {Bucket: 'myBucket', Key: 'myImageFile.jpg'};var file = require('fs').createWriteStream('/path/to/file.jpg');s3.getObject(params).createReadStream().pipe(file);


This will do it:

new AWS.S3().getObject({ Bucket: this.awsBucketName, Key: keyName }, function(err, data){    if (!err)        console.log(data.Body.toString());});


Since you seem to want to process an S3 text file line-by-line. Here is a Node version that uses the standard readline module and AWS' createReadStream()

const readline = require('readline');const rl = readline.createInterface({    input: s3.getObject(params).createReadStream()});rl.on('line', function(line) {    console.log(line);}).on('close', function() {});