📌  相关文章
📜  flysystem azure (1)

📅  最后修改于: 2023-12-03 14:41:17.554000             🧑  作者: Mango

Flysystem Azure

简介

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上下载。

参考