Estoy usando el SDK de AWS para generar una URL de descarga prefirmada desde S3 y ya he hecho esa parte. Puedo copiar la URL prefirmada generada en el navegador y Chrome descargará automáticamente el archivo.
Quiero lograr lo mismo en Angular2, básicamente simular hacer clic en ese enlace. Así que escribí el siguiente código:
aplicación.componente.ts
public downloadFile() { this.downloadService.downloadFile(this.downloadLink) .subscribe((response) => { console.log(response); });}descargar.servicio.ts
public downloadFile(downloadLink: string) { return this.http.get(downloadLink) .map((response) => { return response; }); }De hecho, imprimió el contenido del archivo en la consola, pero no activó la descarga. ¿Alguien tiene una idea de cuál es la forma correcta de hacerlo?
Gracias,
Aquí hay un ejemplo para descargar un archivo CSV, cambie el tipo mime para su propio archivo.
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); }); }