bayfrontmedia / multi-filesystem
一个易于使用的库,用于从单个类中管理多个Flysystem适配器。
v1.0.0
2023-08-15 20:09 UTC
Requires
- php: ^8.0
- league/flysystem: ^3.15
Requires (Dev)
- league/flysystem-aws-s3-v3: ^3.15
This package is auto-updated.
Last update: 2024-09-15 22:48:46 UTC
README
一个易于使用的库,用于从单个类中管理多个Flysystem适配器。
许可证
此项目为开源,可在MIT许可证下使用。
作者
需求
- PHP
^8.0
安装
composer require bayfrontmedia/multi-filesystem
用法
注意:Multi-Filesystem 抛出的所有异常都扩展自 Bayfront\MultiFilesytstem\Exceptions\MultiFilesystemException
,因此您可以按需选择捕获异常的范围。
必须将磁盘名称和 League\Flysystem\Filesystem
实例传递给构造函数,并将自动设置为默认磁盘。
为了在引用磁盘时保持一致性,Bayfront\MultiFilesystem\DiskName
类包含了对每个支持的Flysystem适配器的常量。
示例
use Bayfront\MultiFilesystem\Disk; use Bayfront\MultiFilesystem\DiskName; use League\Flysystem\Local\LocalFilesystemAdapter; use League\Flysystem\Filesystem; $local_adapter = new LocalFilesystemAdapter(__DIR__.'/root/directory/'); $local = new Filesystem($local_adapter); $disk = new Disk(DiskName::LOCAL, $local);
公共方法
getNames
描述
返回磁盘名称数组。
参数
- (无)
返回
- (数组)
getDefaultName
描述
返回默认磁盘的名称。
参数
- (无)
返回
- (字符串)
add
描述
将 League\Flysystem\Filesystem
实例添加为新磁盘。
如果存在同名磁盘,它将被覆盖。
参数
$name
(字符串):磁盘名称$filesystem
(对象):League\Flysystem\Filesystem
对象
返回
- (self)
示例
use Aws\S3\S3Client; use Bayfront\MultiFilesystem\DiskName; use League\Flysystem\AwsS3V3\AwsS3V3Adapter; use League\Flysystem\Filesystem; $s3_client = new S3Client([ // Example connecting to Linode object storage 'version' => 'latest', 'region' => 'us-southeast-1', 'endpoint' => 'https://us-southeast-1.linodeobjects.com', 'credentials' => [ 'key' => 'LINODE_ACCESS_KEY', 'secret' => 'LINODE_SECRET_KEY', ], ]); $bucket_name = 'NAME_OF_BUCKET'; $path_prefix = 'path/to/storage'; // No leading slash $s3_adapter = new AwsS3V3Adapter($s3_client, $bucket_name, $path_prefix); $s3 = new Filesystem($s3_adapter); $disk->add(DiskName::AWS_S3, $s3);
exists
描述
磁盘名称是否存在?
参数
$disk
(字符串)
返回
- (布尔值)
示例
if ($disk->exists('local')) {
// Do something
}
get
描述
返回给定磁盘的 League\Flysystem\Filesystem
实例。
参数
$disk = ''
(字符串):要返回的磁盘名称。如果为空字符串,则返回默认磁盘。
返回
- (对象):
League\Flysystem\Filesystem
对象
抛出
Bayfront\MultiFilesystem\Exceptions\DiskNotFoundException
示例
try {
$local_disk = $disk->get('local');
} catch (DiskNotFoundException $e) {
die($e->getMessage());
}