File Storage

Store and retrieve files across local and cloud disks

Laravel provides a unified API for file storage across local disks, public directories, and cloud services like S3.

Laravel abstracts file systems into 'disks'. Switch between local, public, and S3 storage with one config change.

local
Private app storage
disk
public
Web-accessible files
disk
s3
AWS cloud storage
disk
Same Storage API for all disks
PHP
// config/filesystems.php
'disks' => [
    'local' => [
        'driver' => 'local',
        'root' => storage_path('app'),
    ],
    'public' => [
        'driver' => 'local',
        'root' => storage_path('app/public'),
        'url' => env('APP_URL') . '/storage',
        'visibility' => 'public',
    ],
    's3' => [
        'driver' => 's3',
        'key' => env('AWS_ACCESS_KEY_ID'),
        'secret' => env('AWS_SECRET_ACCESS_KEY'),
        'region' => env('AWS_DEFAULT_REGION'),
        'bucket' => env('AWS_BUCKET'),
    ],
],