在我的Angular应用程序中使用S3预签名网址下载多个文件

时间:2019-05-22 12:41:22

标签: javascript angular amazon-web-services amazon-s3 download

我正在进行REST API调用,以从S3获取一组预签名的URL。这些URL是可以是XML,CSV,JSON等的文件。

如何在不打开新标签的情况下从这些URL循环下载文件? 我不想使用AWS SDK for NodeJS来避免与前端紧密耦合。应用程序当前具有Angular 7,NodeJS和ExpressJS。

getFile(url, params){
this.awsservice.getFile(url, params).subscribe(
  (response) => {
    const res = JSON.parse(JSON.stringify(response));
    var apiList = [];

    for (var key in res) {
      if(key == 'api'){
        apiList = res[key];
      }
    }

    apiList.forEach(function (url) {

  // Logic to download file
  document.location.assign(url) //Only seems to download the last file in the array
      console.log("Download started: "+url);
  });

  },
  (error) => {
    this.tempErrorFlag = true;
    const errorMsg = error;
    console.log(`ERROR ::: reInitiate API ::: ${errorMsg.message}`);
  });
}

我尝试添加document.location.assign(url),但似乎只下载了数组中的最后一个URL。甚至添加delay也无济于事。

感谢您的帮助。

0 个答案:

没有答案