Saltar al contenido

En la anterior entrada vimos cómo subir archivos con Laravel 5 a Amazon S3, aquí vamos a hacer justo lo contrario, descargar archivos con Laravel 5 y S3.

Cuando trabajamos con Laravel 5 y Amazon S3 (Almacenamiento de datos seguro en la nube con Amazon) muchas veces tendremos la necesidad de descargar los datos que hayamos subido, en este tutorial vamos a ver una forma sencilla haciendo uso de forma correcta del Content-type.

Para hacerlo de una forma más segura, en lugar de utilizar el path público que nos ofrece S3, vamos a ocultar esa url accediendo de forma directa al recurso con el método getObject.

En nuestro ejemplo, si un archivo se puede visualizar en el navegador (pdf, imágenes) lo mostraremos, en otro caso (docx, xlsx) los descargáremos, para ello simplemente tenemos que definir la siguiente lógica, en mi caso lo haré en una ruta.

https://gist.github.com/anonymous/332d1c319aeeb70efd16fd51cb8b3a46

Aunque el ejemplo es completamente funcional, también podríamos mejorarlo, por ejemplo, modificando esa url por algún id o clave identificativa para acceder al recurso, ahora mismo la url sería /download/bucketfolder/filename.jpg, en lugar de esto, podríamos aplicar cierta lógica para obtener esos datos de forma más dinámica y ocultar así más información al usuario.

school Curso completo

Curso Laravel 12
Completo 2026

El único curso 100% actualizado que incluye Laravel 12, Livewire 3, Vue 3, React 19 e Inertia 2. Aprende con proyectos reales y las últimas funcionalidades.

access_time 8 horas de contenido
layers 4 tecnologías en 1
update 100% actualizado
code Proyectos prácticos
Ver Curso Laravel 12 arrow_forward

star Incluido en cualquier suscripción

Rutas de aprendizaje