У меня проблема с загрузкой нескольких файлов на s3.что делает моя лямбда: 1. загрузка одного файла в s3 (всегда работает).2. изменение размера файла до 4 новых размеров (с использованием Sharp).3. загрузить файлы с измененным размером в s3.
проблема: иногда загружаются только 2 или 3 из 4 файлов с измененным размером.удивительно то, что я заметил, что при следующей загрузке - добавляются отсутствующие файлы из предыдущей загрузки.
без ошибок, я думал, что это может быть асинхронная проблема, поэтому я ждал подходящих мест, чтобы сделать этоСинхронный.
оценят любую помощь.
асинхронная функция uploadImageArrToS3 (resizeImagesResponse) {
return new Promise(async function (resolve, reject) {
var params = {
Bucket: bucketName,
ACL: 'public-read'
};
let uploadImgArr = resizeImagesResponse.map(async (buffer) => {
params.Key = buffer.imgParamsArray.Key;
params.Body = buffer.imgParamsArray.Body;
params.ContentType = buffer.imgParamsArray.ContentType;
let filenamePath = await s3.putObject(params, (e, d) => {
if (e) {
reject(e);
} else {
d.name = params.ContentType;
return (d.name);
}
}).params.Key
let parts = filenamePath.split("/");
let fileName = parts[parts.length - 1];
return {
fileName: fileName,
width: buffer.width
};
});
await Promise.all(uploadImgArr).then(function (resizedFiles) {
console.log('succesfully resized the image!');
resolve(resizedFiles);
});
})
}