📅  最后修改于: 2023-12-03 14:41:17.554000             🧑  作者: Mango
Flysystem Azure是一个基于Azure Blob存储的Flysystem适配器。Flysystem是一个PHP开发人员的文件系统抽象库,它允许您无缝地在许多不同的存储系统中工作,包括本地文件系统、FTP服务器、Amazon S3等。
在使用Flysystem Azure之前,请先安装Azure Blob存储。
使用Composer安装:
composer require league/flysystem-azure
use League\Flysystem\AzureBlobStorage\AzureBlobStorageAdapter;
use MicrosoftAzure\Storage\Blob\BlobRestProxy;
$connectionString = "DefaultEndpointsProtocol=https;AccountName=<account-name>;AccountKey=<account-key>";
$blobClient = BlobRestProxy::createBlobService($connectionString);
$adapter = new AzureBlobStorageAdapter($blobClient, '<container-name>');
$filesystem = new \League\Flysystem\Filesystem($adapter);
// 写入文件
$contents = 'Hello World!';
$filesystem->write('file.txt', $contents);
// 读取文件
$fileContents = $filesystem->read('file.txt');
// 删除文件
$filesystem->delete('file.txt');
配置参数通过传递一个数组到AzureBlobStorageAdapter
的构造函数中进行设置。
参数列表:
disable_asserts
(默认值:true
):抛出异常更容易调试,但会增加开销。可以通过将此选项设置为false
来关闭这个特性。override_visibility_on_copy
(默认值:null
):可以用它来覆盖复制对象隐私级别。blob_service_options
(默认值:[]
):一个选项数组,传递给Azure Blob存储REST API客户端的构造函数。可以在Azure Blob存储PHP SDK文档中找到所有可用选项的清单。prefix
(默认值:''
):文件系统命名空间的前缀。默认情况下,命名空间为空字符串。default_visibility
(默认值:'private'
):default visibility 隐私级别。url
(默认值:http://<container-name>.blob.core.windows.net
):当前容器的URL,可以用于构建对象的URL。$config = [
'disable_asserts' => true,
'prefix' => 'path/to/files',
'default_visibility' => 'public',
'url' => 'http://cdn.example.com',
'blob_service_options' => [
'Microsoft_WindowsAzure_Storage_Blob' => [
'max_retries' => 5,
'connect_timeout' => 10,
'read_timeout' => 10,
'timeout' => 10,
],
],
];
$adapter = new AzureBlobStorageAdapter($blobClient, '<container-name>', $config);
示例代码位于/examples
目录下。可以从Github上下载。