koffinate / laravel-filesystem
与 Minio 兼容的 Illuminate 文件系统
v1.0.1
2023-08-02 13:40 UTC
Requires
- php: ^8.1
- illuminate/console: ^9.0|^10.0
- illuminate/filesystem: ^9.0|^10.0
- illuminate/support: ^9.0|^10.0
- league/flysystem-aws-s3-v3: ^3.15
Requires (Dev)
- pestphp/pest: ^2.7
This package is auto-updated.
Last update: 2024-10-01 00:09:16 UTC
README
安装
composer require koffinate/laravel-filesystem
配置
将此添加到您的环境
MINIO_ACCESS_KEY_ID="minio-access-key" MINIO_SECRET_ACCESS_KEY="minio-secret-access-key" MINIO_DEFAULT_REGION="minio-region" MINIO_BUCKET="minio-bucket" MINIO_USE_PATH_STYLE_ENDPOINT=true MINIO_URL="minio-full-url-with-bucket-include" MINIO_ENDPOINT="minio-endpoint-without-bucket-included" MINIO_VISIBILITY="public"
或者使用默认的 laravel aws-s3 环境
AWS_ACCESS_KEY_ID="s3-access-key" AWS_SECRET_ACCESS_KEY="s3-secret-access-key" AWS_DEFAULT_REGION="s3-region" AWS_BUCKET="s3-bucket" AWS_USE_PATH_STYLE_ENDPOINT=false AWS_URL="s3-full-url-with-bucket-include" AWS_ENDPOINT="s3-endpoint-without-bucket-included" AWS_VISIBILITY="public"
实际上,如果您想同时使用 Minio 和 s3,请在 .env
中使用 AWS_
和 MINIO_
。
自定义配置
您还可以通过在 config/filesystem.php
中定义带有 minio
键的新磁盘来自定义配置。
或者使用此命令从默认配置生成
php artisan koffinate:minio-config
用法
正常使用 Laravel 文件系统即可。
确保您的 FILESYSTEM_DISK
在 .env
中设置为默认的 minio
,
... FILESYSTEM_DISK=minio ...
或者使用 spatie/laravel-medialibrary
包时为 MEDIA_DISK
。
... MEDIA_DISK=minio ...
获取磁盘使用情况
您可以直接使用 Storage
中的 disk
方法。
// put content into file Storage::disk('minio')->put('file.jpg', $contents); // read file contents $contents = Storage::disk('minio')->get('file.jpg'); // check file is exists if (Storage::disk('minio')->exists('file.jpg')) { // ... } // check file is missing or not exists if (Storage::disk('minio')->missing('file.jpg')) { // ... }
在上传文件时
// store on folder $request->file('files')->store('path-to-folder', 'minio'); // store on folder with new name $request->file('files')->storeAs('path-to-folder', 'file.jpg', 'minio');
有关更多用法,请参阅 Laravel 文件系统。