baotdinh Ответов: 0

Aws lambda: не создавайте функцию внутри цикла


Привет ,
я создал функцию aws lambda для загрузки всех изображений в ведро s3 с приведенным ниже кодом:
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);
    });
};


И я хочу спросить 2 вещи:
- С моим кодом вроде этого есть какие-то проблемы ?
- У него есть предупреждение "Не делайте функцию внутри цикла" в s3.getSignedUrl. Как я могу разрешить этот код в aws lambda .

Спасибо.

Что я уже пробовал:

Я хочу знать, как лучше всего решить эту проблему

0 Ответов