Получить предварительно подписанный URL для объектов S3 в Angular - PullRequest
0 голосов
/ 16 ноября 2018

У меня есть лямбда, которая подписывает объекты s3 и генерирует предварительно подписанные URL-адреса и работает нормально, я хочу использовать предварительно подписанный URL-адрес в моем Angular, а не генерировать ссылку и загружать из браузера, вот моя реализация:

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>

моя лямбда ожидает, что имя сегмента и имя объекта сгенерирует предварительно подписанный URL, проблема в том, как передать имя объекта в лямбду, потому что у меня есть древовидная структура, как показано ниже:

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

Так как я могу передать имя объекта лямбде и сгенерировать предварительно подписанный URL-адрес, чтобы при нажатии кнопки загрузить и иметь возможность загрузить файл?

...