Saltar al contenido

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>
@stop

routes.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.

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