Halo, kalau kamu merasa tulisan saya ngebantu kamu, kamu bisa ucapkan terima kasih lewat saweria .

Hello, if you find this article helpful, you can express your gratitude through saweria .



Variabel Minio di Laravel

Ga ada setup khusus untuk Minio di Laravel. Hanya saja karena Minio biasanya menggunakan path style, kamu harus menambahkan/mengganti variabel AWS_USE_PATH_STYLE_ENDPOINT=true

#minio laravel example
AWS_ACCESS_KEY_ID=xxx
AWS_SECRET_ACCESS_KEY=xxx
AWS_DEFAULT_REGION=sgp1
AWS_BUCKET=ember
AWS_ENDPOINT=https://minio.ipang.my.id
# path /ember was a must
AWS_URL=https://minio.ipang.my.id/ember
#must true
AWS_USE_PATH_STYLE_ENDPOINT=true

Special Case, Hardcode Path di Code

Ada kasus khusus, ketika programmer menggunakan hardcode path di code (di kasus ini menggunakan path /assets)

  1. Tambahkan variabel baru di config/filesystems.php. Variabel itu adalah root
        's3' => [
            'driver' => 's3',
            'key' => env('AWS_ACCESS_KEY_ID'),
            'secret' => env('AWS_SECRET_ACCESS_KEY'),
            'region' => env('AWS_DEFAULT_REGION'),
            'bucket' => env('AWS_BUCKET'),
            'url' => env('AWS_URL'),
            'endpoint' => env('AWS_ENDPOINT'),
            'use_path_style_endpoint' => env('AWS_USE_PATH_STYLE_ENDPOINT', false),
            'throw' => false,
            'visibility' => 'public',
            'root' => env('AWS_ROOT'),
            'directory_separator' => env('AWS_DIR_SEPARATOR'),
        ],
  1. Di .env (di contoh ini saya menggunakan R2 Cloudflare sebagai file storage)
AWS_ACCESS_KEY_ID=xxx
AWS_SECRET_ACCESS_KEY=xxx
AWS_DEFAULT_REGION=sgp1
AWS_BUCKET=ember
AWS_ENDPOINT=https://xxx.r2.cloudflarestorage.com
AWS_URL==https://r2.ipang.my.id
AWS_USE_PATH_STYLE_ENDPOINT=false
#this was a must
AWS_ROOT=assets
#so the root workdir was https://r2.ipang.my.id/assets

Referensi:

  1. Laravel Docs - File Storage