xinningsu / laravel-filesystem-baidu-bos
Baidu BOS storage for Laravel, 百度对象存储作为Laravel文件存储。
v1.0.2
2024-06-02 01:11 UTC
Requires
- php: >=8.0
- laravel/framework: ^9.0 || ^10.0 || ^11.0
- xinningsu/flysystem-baidu-bos: ^3.0.0
Requires (Dev)
- php-coveralls/php-coveralls: ^2.1
- phpunit/phpunit: >=5.0
- squizlabs/php_codesniffer: ^3.0
This package is auto-updated.
Last update: 2024-11-02 02:00:21 UTC
README
Baidu BOS storage for Laravel, 百度对象存储作为Laravel文件存储。
Installation
composer require xinningsu/laravel-filesystem-baidu-bos
Discovery
- For Laravel >= 5.5, It uses package auto discovery feature, no need to add service provider.
- For Laravel < 5.5, add
Sulao\LaravelFilesystem\BaiduBos\BaiduBosServiceProvider::class
toconfig/app.php
underproviders
element.
return [ // ... 'providers' => [ // ... /* * Package Service Providers... */ Sulao\LaravelFilesystem\BaiduBos\BaiduBosServiceProvider::class, ], // ... ];
Configuration
Set up bos credentials in .env, then add new disk in config/filesystems.php
:
return [ // ... 'disks' => [ // ... 'bos' => [ 'driver' => 'bos', 'access_key' => env('BOS_KEY'), 'secret_key' => env('BOS_SECRET'), 'region' => env('BOS_REGION'), // gz, bj ... 'bucket' => env('BOS_BUCKET'), ], // ... ], // ... ];
Examples
$disk = \Illuminate\Support\Facades\Storage::disk('bos'); // Determine if a file exists. $disk->exists('file.txt'); // Get the contents of a file. $content = $disk->get('file.txt'); // Get a resource to read the file. $stream = $disk->readStream('file.txt'); // Write the contents of a file. $disk->put('file.txt', 'contents'); // Write a new file using a stream. $disk->writeStream('file.txt', fopen('/resource.txt', 'r')); // Get the visibility for the given path. $visibility = $disk->getVisibility('file.txt'); // Set the visibility for the given path. $disk->setVisibility('file.txt', 'public'); // Prepend to a file. $disk->prepend('file.txt', 'prepend contents'); // Append to a file. $disk->append('file.txt', 'append contents'); // Delete the file(s) at a given path. $disk->delete('file.txt'); $disk->delete(['file.txt', 'file2.txt']); // Copy a file to a new location. $disk->copy('file.txt', 'new_file.txt'); // Move a file to a new location. $disk->move('file.txt', 'new_file.txt'); // Get the file size of a given file. $size = $disk->size('file.txt'); // Get the file's last modification time. $ts = $disk->lastModified('file.txt'); // Get an array of all files in a directory. $files = $disk->files($directory = 'test/', $recursive = false); // Get all of the files from the given directory (recursive). $allFiles = $disk->allFiles($directory = null); // Get all of the directories within a given directory. $dirs = $disk->directories($directory = null, $recursive = false); // Get all (recursive) of the directories within a given directory. $allDirs = $disk->allDirectories($directory = null); // Create a directory. $disk->makeDirectory('test/'); // Delete a directory. $disk->deleteDirectory('test/');
Reference
- https://laravel.com/docs/filesystem#custom-filesystems
- https://github.com/xinningsu/flysystem-baidu-bos
- https://github.com/thephpleague/flysystem
- https://github.com/xinningsu/baidu-bos
- https://cloud.baidu.com/doc/BOS/index.html