获取Angular中S3对象的预签名URL

时间:2018-11-16 20:29:34

标签: angular amazon-s3 aws-lambda pre-signed-url

我有lambda可以对s3对象进行签名并生成预签名的URL,并且可以正常工作,我想在Angular中使用预签名的URL,而不是生成链接并从浏览器下载,这是我的实现:

component.ts

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

service.ts

public downloadFile(downloadLink: string) {
      return this.http.get('lambdalink?bucket=name&objeect=name')
        .map((response) => {
           let blob = new Blob([response], { type: '.psd' });
           let url= window.URL.createObjectURL(blob);
           window.open(url);
      });
    }

template.html

<span (click)="downloadFile()">Download</span>

我的lambda希望存储区名称和对象名称生成预先签名的URL,问题是如何将对象名称传递给lambda,因为我的树结构如下:

  - folder1/
          project1/
                samplev1.psd
  - folder2/
          project1/
                sampleVer2.psd

那么如何将对象名称传递给lambda并生成预签名的URL,以便在单击时下载并能够下载文件?

0 个答案:

没有答案