Minio是一個很是輕量的對象存儲服務。php
Github: miniolaravel
它自己不支持文件的版本管理。若是有這個需求,能夠用 s3git 搭配使用。git
Github: s3gitgithub
minio 文檔有列出各平臺的安裝方式。這裏只說 docker 的方式。docker
docker-compose.ymljson
version: "3" services: minio: image: minio/minio volumes: - minio-data:/data ports: - "9080:9000" environment: MINIO_ACCESS_KEY: minio MINIO_SECRET_KEY: minio123 command: server /data volumes: minio-data:
將上面內容保存爲 docker-compose.yml 文件。而後在這個文件所在的文件夾內執行 docker-compose up -d
。minio 服務就啓動了。composer
服務啓動後,訪問 http://127.0.0.1:9080 進入登陸界面:ui
輸入上面設置的 access key:minio 和 secret key:minio123,登陸。3d
圖中 1 是上傳一個文件;圖中 2 是建立一個 bucket (儲存區)。code
文件必須上傳到某一個存儲區裏面,所以必須先建立一個 bucket。
文件上傳後,一旦選擇文件,就會在頂部出現刪除和下載的操做按鈕。
composer require league/flysystem-aws-s3-v3
修改 config/filesystems.php
... 'cloud' => env('FILESYSTEM_CLOUD', 'minio'), ... 'disks' => [ ... 'minio' => [ 'driver' => 's3', 'endpoint' => env('MINIO_ENDPOINT'), 'use_path_style_endpoint' => true, 'key' => env('MINIO_ACCESS_KEY_ID'), 'secret' => env('MINIO_SECRET_ACCESS_KEY'), 'region' => env('MINIO_DEFAULT_REGION'), 'bucket' => env('MINIO_BUCKET'), ], ... ]
修改 .env
FILESYSTEM_CLOUD=minio MINIO_ENDPOINT="http://127.0.0.1:9080" MINIO_ACCESS_KEY_ID=minio MINIO_SECRET_ACCESS_KEY=minio123 MINIO_DEFAULT_REGION=cn-north-1 MINIO_BUCKET=剛建立的bucket名稱
php artisan tinker
Storage::cloud()->put('hello.json', '{"hello": "world"}');
Storage::cloud()->get('hello.json');
結果:{"hello": "world"}