Saltar al contenido

Descarga de archivos de AWS S3 desde el lado del cliente

La guía paso a paso o código que verás en este artículo es la resolución más sencilla y válida que encontramos a tu duda o problema.

Solución:

Si el archivo que intenta descargar no es público, debe crear una URL firmada para obtener ese archivo.

¿La solución está aquí Javascript para descargar un archivo del cubo de Amazon s3? para obtener archivos no públicos, que gira en torno a la creación de una función lambda que generará una URL firmada para usted y luego usará esa URL para descargar el archivo al hacer clic en el botón

PERO si el archivo que está tratando de descargar es público, entonces no necesita una URL firmada, solo necesita saber la ruta al archivo, las URL están estructuradas como: https://s3.amazonaws.com/ [file path]/[filename]

También son aws los que amplifican su creación y mantenimiento por parte del equipo de AWS.

Simplemente siga Comenzar y descargar el archivo desde su aplicación de reacción es simplemente como:

Storage.get('hello.png', expires: 60)
.then(result => console.log(result))
.catch(err => console.log(err));

Aquí está mi solución:

let downloadImage = url => 
  let urlArray = url.split("/")
  let bucket = urlArray[3]
  let key = `$urlArray[4]/$urlArray[5]`
  let s3 = new AWS.S3( params:  Bucket: bucket )
  let params = Bucket: bucket, Key: key
  s3.getObject(params, (err, data) => 
    let blob=new Blob([data.Body], type: data.ContentType);
    let link=document.createElement('a');
    link.href=window.URL.createObjectURL(blob);
    link.download=url;
    link.click();
  )

La URL en el argumento se refiere a la URL del archivo S3.

Solo pon esto en el onClick método de su botón. También necesitarás el AWS SDK

Si te gustó nuestro trabajo, tienes la opción de dejar una noticia acerca de qué le añadirías a este ensayo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *