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