How can I use the storage server with Laravel?

First of all install a new storage server, you can select this when pressing "Create server" under "Type", you will be able to select "Storage server" there.

Next in your Laravel application, add the Amazon S3 driver:

composer require league/flysystem-aws-s3-v3

Next we have to configure a new filesystem driver inside the config file: config/filesystems.php, open this file in your favorite IDE.

Look up the disks array in this file and add the following block to that array:

'minio' => [
    'driver' => 's3',
    'endpoint' => env('MINIO_ENDPOINT', 'http://127.0.0.1:9000'),
    'use_path_style_endpoint' => true,
    'key' => env('MINIO_KEY'),
    'secret' => env('MINIO_SECRET'),
    'region' => env('MINIO_REGION'),
    'bucket' => env('MINIO_BUCKET'),
],

Then we have to add those values to our .env file:

FILESYSTEM_CLOUD=minio
MINIO_ENDPOINT=http://127.0.0.1:9000
MINIO_KEY=YOUR-ACCESS-KEY
MINIO_SECRET=YOUR-SECRET-KEY
MINIO_REGION=us-east-1
MINIO_BUCKET=test

The value for MINIO_REGION can be anything you want as this is not used for MinIO. 
The value for MINIO_BUCKET is the name of the bucket you have created in the storage server.

You are now ready to start using your storage server, here is an example to get all files from your storage:

Route::get('storage', function(){
    return Storage::disk('minio')->files();
});

More information about the Laravel storage system can be found in their documentation.

14 November 2019
1775 views