我在将多个文件上传到s3时遇到问题。 我的lambda在做什么: 1.将单个文件上传到s3(始终有效)。 2.将文件调整为4个新大小(使用Sharp)。 3.将调整大小的文件上传到s3。
问题:有时只有4个调整大小的文件中只有2或3个被上传。 令人惊讶的是,我注意到在下一次上传时-添加了先前上传的丢失文件。
没有错误,我以为这可能是异步问题,所以我在等待正确的位置使其同步。
将感谢您的帮助。
异步函数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);
});
})
}