From 0fe2e2bae66cbcf95c3ab09a4a172f8833a1fe3d Mon Sep 17 00:00:00 2001 From: Frank John Begornia Date: Fri, 17 Apr 2026 13:03:37 +0800 Subject: [PATCH] fix: register minio custom driver using flysystem-aws-s3-v3 (Laravel 5.0 hardcodes v2) --- app/Providers/AppServiceProvider.php | 17 +++++++++++++++++ config/filesystems.php | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 00899d7..a97edda 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -4,6 +4,8 @@ use Illuminate\Support\ServiceProvider; use Storage; use League\Flysystem\Filesystem; use League\Flysystem\Sftp\SftpAdapter; +use League\Flysystem\AwsS3v3\AwsS3Adapter as AwsS3v3Adapter; +use Aws\S3\S3Client; class AppServiceProvider extends ServiceProvider { @@ -27,6 +29,21 @@ class AppServiceProvider extends ServiceProvider { Storage::extend('sftp', function ($app, $config) { return new Filesystem(new SftpAdapter($config)); }); + + Storage::extend('minio', function ($app, $config) { + $client = new S3Client([ + 'credentials' => [ + 'key' => $config['key'], + 'secret' => $config['secret'], + ], + 'region' => $config['region'], + 'version' => 'latest', + 'endpoint' => $config['endpoint'], + 'use_path_style_endpoint' => filter_var($config['use_path_style_endpoint'] ?? true, FILTER_VALIDATE_BOOLEAN), + ]); + $adapter = new AwsS3v3Adapter($client, $config['bucket']); + return new Filesystem($adapter); + }); } /** diff --git a/config/filesystems.php b/config/filesystems.php index 5755f47..b9ea6b5 100644 --- a/config/filesystems.php +++ b/config/filesystems.php @@ -88,7 +88,7 @@ return [ ], 'minio' => [ - 'driver' => 's3', + 'driver' => 'minio', 'key' => env('MINIO_KEY'), 'secret' => env('MINIO_SECRET'), 'region' => env('MINIO_REGION', 'us-east-1'),