小编Ele*_*off的帖子

异步/等待循环遍历数组以获取 s3 签名 URL

我已经编写了以下代码。输入(结果)是 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 不存在。我无法弄清楚问题是什么。我猜这是一个异步问题,但我没有足够的经验来弄清楚。

javascript asynchronous node.js async-await

0
推荐指数
1
解决办法
4781
查看次数

标签 统计

async-await ×1

asynchronous ×1

javascript ×1

node.js ×1