Click here to Skip to main content
15,879,326 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi ,
i have created a aws lambda function to load all images in s3 bucket with below code:
JavaScript
var AWS = require('aws-sdk');
var s3 = new AWS.S3();

exports.handler = (event, context, callback) => {   
    
    var s3Bucket = 'mybucket';
    var imagesUrl = [];
    var params = {Bucket: s3Bucket,Delimiter: '/',Prefix:'subFolder/'};

    s3.listObjects(params, function(err, data){      
      var bucketContents = data.Contents;
        for (var i = 0; i < bucketContents.length; i++){
          var urlParams = {Bucket: s3Bucket, Key: bucketContents[i].Key};
            s3.getSignedUrl('getObject',urlParams, function(err, url){
              imagesUrl.push(url);
            });
        }
        context.succeed(imagesUrl);
    });
};


And i want to ask 2 things:
- With my code like that , does it have any problem ?
- It has warning "Don't make function within a loop" at s3.getSignedUrl. How can i resolve this code in aws lambda .

Thanks.

What I have tried:

I want to know about the best way to solve this problem
Posted

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900