У меня есть лямбда, которая подписывает объекты 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-адрес, чтобы при нажатии кнопки загрузить и иметь возможность загрузить файл?