Laravel 5 nos ofrece muchas posibilidades al momento de subir archivos a un servidor, en esta ocasión vamos a ver lo sencillo que es subir archivos con Laravel 5 a Amazon S3, el sistema de almacenamiento que nos ofrece Amazon Web Services.
Lo que vamos a hacer va a ser realizar toda la configuración necesaria en el servidor para posteriormente ver cómo podemos subir un archivo a un bucket de Amazon S3, así que vamos a empezar, lo primero que debemos hacer es tener las credenciales de nuestro bucket, una vez las tengamos, abre tu archivo .env y añade lo siguiente.
AWS_KEY=
AWS_SECRET=
AWS_REGION=
AWS_BUCKET=
Simplemente añade tus credenciales, una vez lo tengamos, vamos a añadir la dependencia necesaria a nuestro proyecto para poder subir archivos. composer require --with-all-dependencies league/flysystem-aws-s3-v3 "^1.0" Ya tenemos todo lo que necesitamos y podemos empezar a subir archivos, así que simplemente vamos a añadir un formulario y una ruta web con el siguiente código.
form.blade.php
@section('content')
<div class="card">
<div class="card-body">
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
{{ Form::model($course, ['url' => route('upload_s3'), 'files' => true]) }}
<div class="form-group">
{{ Form::label('Imagen', null, ['class' => 'control-label']) }}
{{ Form::file('upload') }}
</div>
<div class="form-group btn.purple">
{{ Form::submit('Subir archivo') }}
</div>
{{ Form::close() }}
</div>
</div>
@stoproutes.php
<?php
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Facades\Storage;
Route::post('upload', function () {
$file = request()->file('upload');
$upload = Storage::disk('s3')->put('courses/' . $file->getClientOriginalName(), $file, 'public');
})->name('upload_s3');
En este momento si envías el formulario seleccionando previamente un archivo, dicho archivo será subido a tu bucket dentro de un directorio llamado courses, así de sencillo es subir archivos con Laravel 5 a Amazon S3.
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.
star Incluido en cualquier suscripción