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 .
Спасибо.
Что я уже пробовал:
Я хочу знать, как лучше всего решить эту проблему