0 votes
1 view
in AWS by (18.2k points)

I have a simple question: How do I download an image from an S3 bucket to Lambda function temp folder for processing? Basically, I need to attach it to an email (this I can do when testing locally).

I have tried:

s3.download_file(bucket, key, '/tmp/image.png')

as well as (not sure which parameters will help me get the job done):

s3.getObject(params, (err, data) => {

    if (err) {

        console.log(err);

        const message = `Error getting object ${key} from bucket ${bucket}.`;

        console.log(message);

        callback(message);

    } else {

        console.log('CONTENT TYPE:', data.ContentType);

        callback(null, data.ContentType);

    }

});

Like I said, simple question, which for some reason I can't find a solution for.

1 Answer

0 votes
by (42.5k points)

Use AWS S3 API to get the image, then use fs to write it to the tmp folder.

var params = {   Bucket: "BUCKET_NAME",   Key: "OBJECT_KEY" };  

s3.getObject(params, function(err, data){   if (err) {

    console.error(err.code, "-", err.message);

    return callback(err);   }

  fs.writeFile('/tmp/filename', data.Body, function(err){

    if(err)

      console.log(err.code, "-", err.message);

    return callback(err);   

  });

});

Welcome to Intellipaat Community. Get your technical queries answered by top developers !


Categories

...