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"}