fauzantaqiyuddin / laravel-minio
一个用于将文件上传到Minio对象存储的Laravel包
v1.10.5
2024-08-05 06:43 UTC
Requires
- php: ^5.6|^7.0|^8.0|^8.1|^8.2
- aws/aws-sdk-php: ^3.0
- illuminate/support: ^5.1|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0
This package is not auto-updated.
Last update: 2024-09-30 07:33:21 UTC
README
Laravel Minio 存储
一个用于将文件上传到Minio对象存储的Laravel包。
安装
-
通过Composer安装此包
composer require fauzantaqiyuddin/laravel-minio
-
发布配置文件
php artisan vendor:publish --provider="Fauzantaqiyuddin\LaravelMinio\MiniojanServiceProvider"
配置
-
将以下环境变量添加到您的
.env
文件中MINIO_REGION=us-east-1 MINIO_ENDPOINT=http://127.0.0.1:9000 MINIO_ACCESS_KEY=your-access-key MINIO_SECRET_KEY=your-secret-key MINIO_BUCKET=your-bucket-name
-
配置文件
config/miniojan.php
将被发布到您的Laravel项目中。您可以根据需要对其进行自定义。
用法
上传文件
要上传文件到Minio,请使用 upload
方法。
示例控制器
<?php namespace App\Http\Controllers; use Fauzantaqiyuddin\LaravelMinio\Facades\Miniojan; use Illuminate\Http\Request; class HomeController extends Controller { public function uploadFile(Request $request) { $request->validate([ 'berkas' => 'required|image', 'directory' => 'required|string', ]); $file = $request->file('berkas'); $directory = $request->input('directory'); $path = $file->store('temp'); $filePath = storage_path('app/' . $path); // Upload file ke MinIO $response = Miniojan::upload($directory, $filePath); unlink($filePath); return back()->with('message', $response); } public function getFileUrl(Request $request) { $request->validate([ 'file_name' => 'required|string', 'directory' => 'required|string', 'bucket' => 'required|string', ]); $fileName = $request->input('file_name'); $directory = $request->input('directory'); $url = Miniojan::getUrl($directory, $fileName); return back()->with('url', $url); } public function deleteFile(Request $request) { $request->validate([ 'file_name' => 'required|string', 'directory' => 'required|string', 'bucket' => 'required|string', ]); $fileName = $request->input('file_name'); $directory = $request->input('directory'); $response = Miniojan::delete($directory, $fileName); return back()->with('message', $response); } }