【问题标题】:angular2 download object using pre-signed url from s3angular2 使用来自 s3 的预签名 url 下载对象
【发布时间】:2017-03-24 20:58:41
【问题描述】:

我正在使用 AWS 开发工具包从 S3 生成预​​签名的下载 url,并且我已经完成了那部分。我可以将生成的预签名 url 复制到浏览器中,chrome 会自动下载文件。

我想在 Angular2 中实现同样的功能,基本上是模拟点击那个链接。于是我写了如下代码:

app.component.ts

public downloadFile() { 
  this.downloadService.downloadFile(this.downloadLink)
    .subscribe((response) => {
      console.log(response);
    });}

下载.service.ts

    public downloadFile(downloadLink: string) {
      return this.http.get(downloadLink)
        .map((response) => {
            return response;
      });
    }

它确实在控制台中打印出了文件内容,但没有触发下载。有没有人知道正确的方法是什么?

谢谢,

【问题讨论】:

  • 您要下载的文件类型是什么
  • 您在 S3 存储桶端使用什么设置?当我尝试使用相同的方法下载文件时,它给了我内容安全策略错误?

标签: angular amazon-web-services amazon-s3 httprequest


【解决方案1】:

这是一个下载 CSV 文件的示例,可以为您自己的文件更改 mime 类型。

public downloadFile(downloadLink: string) {
      return this.http.get(downloadLink)
        .map((response) => {
           let blob = new Blob([response], { type: 'text/csv' });
           let url= window.URL.createObjectURL(blob);
           window.open(url);
      });
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-15
    • 2021-02-15
    • 2018-05-21
    • 2021-10-25
    • 2018-12-25
    相关资源
    最近更新 更多