📅  最后修改于: 2023-12-03 15:17:14.506000             🧑  作者: Mango
Laravel 存储是 Laravel 的一个功能强大的组件,它提供了一个统一的接口来处理文件系统、云存储和本地存储。
Laravel 存储是 Laravel 框架的一部分,因此它不需要额外安装。只需在应用程序中使用即可。
Laravel 存储的配置文件位于 config/filesystems.php
。这个文件中定义了应用程序可以使用的不同的 "驱动程序"。驱动程序为文件存储库提供了统一的接口。
return [
'default' => env('FILESYSTEM_DRIVER', 'local'),
'disks' => [
'local' => [
'driver' => 'local',
'root' => storage_path('app'),
],
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL') . '/storage',
'visibility' => 'public',
],
's3' => [
'driver' => 's3',
'key' => env('AWS_ACCESS_KEY_ID'),
'secret' => env('AWS_SECRET_ACCESS_KEY'),
'region' => env('AWS_DEFAULT_REGION'),
'bucket' => env('AWS_BUCKET'),
'url' => env('AWS_URL'),
],
],
];
在这个配置文件中,可以添加任意多个驱动程序。驱动程序可以是本地文件系统、Amazon S3、Rackspace 等云存储或其他文件系统。可以通过在 filesystems.php
文件中设置特定选项来配置每个驱动程序的行为。
Laravel 还允许自定义文件系统驱动程序,使得您可以快速、轻松地扩展存储系统。
一旦配置了文件系统驱动程序,可以使用 Storage
facade 来访问文件存储库中的文件。
use Illuminate\Support\Facades\Storage;
// 读取默认磁盘上的文件
$contents = Storage::get('file.jpg');
// 读取本地磁盘上的文件
$contents = Storage::disk('local')->get('file.jpg');
use Illuminate\Support\Facades\Storage;
// 写入默认磁盘上的文件
Storage::put('file.jpg', $contents);
// 写入本地磁盘上的文件
Storage::disk('local')->put('file.jpg', $contents);
use Illuminate\Support\Facades\Storage;
// 删除默认磁盘上的文件
Storage::delete('file.jpg');
// 删除本地磁盘上的文件
Storage::disk('local')->delete('file.jpg');
use Illuminate\Support\Facades\Storage;
// 获取默认磁盘上的文件 URL
$url = Storage::url('file.jpg');
// 获取 public 磁盘上的文件 URL
$url = Storage::disk('public')->url('file.jpg');
use Illuminate\Support\Facades\Storage;
// 获取默认磁盘上的文件元数据
$meta = Storage::getMetaData('file.jpg');
// 获取本地磁盘上的文件元数据
$meta = Storage::disk('local')->getMetadata('file.jpg');
Laravel 存储是一个非常有用的组件,可以帮助开发者处理文件系统、云存储和本地存储的所有类型,提供了一个灵活的驱动程序接口,支持自定义文件系统驱动程序,使得我们可以在 Laravel 中更好地管理文件系统。