Baidu BOS storage for Laravel, 百度对象存储作为Laravel文件存储。
composer require xinningsu/laravel-filesystem-baidu-bos
- 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,
],
// ...
];
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'),
],
// ...
],
// ...
];
$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/');