我已经编写了以下代码。输入(结果)是 S3 存储桶中存在的文件名数组。我希望做的是遍历该列表并为每个列表检索一个签名 URL。
let result = [{ fileName: "dog.jpg" },{ fileName: "cat.jpg"}];
async function getSignedUrl(key){
let params = { Bucket: bucketName, Key: key };
let url = await s3.getSignedUrl('getObject', params, (err, url) => {
if (err) reject(err)
return url;
});
}
async function process(items) {
for (let item of items) {
const signedUrl = await getSignedUrl(item.fileName);
item.url = signedUrl;
}
return items;
}
process(result).then(res => {
console.log(res);
});Run Code Online (Sandbox Code Playgroud)
问题是当我 console.log 结果时,新的 URL 不存在。我无法弄清楚问题是什么。我猜这是一个异步问题,但我没有足够的经验来弄清楚。