fauzantaqiyuddin / laravel-minio
A Laravel package to upload files to Minio Object Storage
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: 2025-04-14 10:04:15 UTC
README
Laravel Minio Storage
A Laravel package to upload files to Minio Object Storage.
Installation
-
Install the package via Composer:
composer require fauzantaqiyuddin/laravel-minio
-
Publish the configuration file:
php artisan vendor:publish --provider="Fauzantaqiyuddin\LaravelMinio\MiniojanServiceProvider"
Configuration
-
Add the following environment variables to your
.env
file: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
-
The configuration file
config/miniojan.php
will be published to your Laravel project. You can customize it as needed.
Usage
Uploading Files
To upload files to Minio, use the upload
method.
Example Controller
<?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); } }