microsoft / azure-storage-file
此项目提供了一组PHP客户端库,可以轻松访问Microsoft Azure存储文件API。
Requires
- php: >=5.6.0
- microsoft/azure-storage-common: ~1.5
This package is not auto-updated.
Last update: 2024-09-09 17:54:31 UTC
README
有关项目退役和替代方案等更多详细信息,请访问 退役通知:Azure Storage PHP客户端库将于2024年3月17日退役。
此项目提供了一组PHP客户端库,可以轻松访问Microsoft Azure存储文件服务。有关如何在Microsoft Azure上托管PHP应用程序的文档,请参阅 Microsoft Azure PHP开发者中心。
注意
- 此 仓库 目前仅用于发布,请访问 azure-storage-php 提交问题或贡献。
- 如果您正在寻找服务总线、服务运行时、服务管理或媒体服务库,请访问 https://github.com/Azure/azure-sdk-for-php。
- 如果您需要大文件(大于2GB)或64位整数支持,请安装PHP 7 64位版本。
功能
- 文件
- 创建、列出和删除文件共享和目录
- 创建、删除和下载文件
请查看 API参考文档 的详细信息。
入门
最低要求
-
PHP 5.6或更高版本
-
查看 composer.json 了解依赖项
-
PHP所需扩展
- php_fileinfo.dll
- php_mbstring.dll
- php_openssl.dll
- php_xsl.dll
-
PHP推荐扩展
- php_curl.dll
下载源代码
要从GitHub获取源代码,请输入
git clone https://github.com/Azure/azure-storage-php.git
cd ./azure-storage-php
通过Composer安装
- 在项目的根目录下创建一个名为 composer.json 的文件,并将其中的以下代码添加到该文件中
{ "require": { "microsoft/azure-storage-file": "*" } }
-
在项目根目录下下载 composer.phar
-
打开命令提示符,并在项目根目录下执行以下命令
php composer.phar install
用法
在使用库进行调用之前,必须执行以下四个基本步骤。
- 首先,包含自动加载脚本
require_once "vendor/autoload.php";
-
包含您打算使用的命名空间。
要创建任何Microsoft Azure服务客户端,您需要使用REST代理类,例如 ListSharesOptions 类
use MicrosoftAzure\Storage\File\FileRestProxy;
要处理异常,您需要
use MicrosoftAzure\Storage\Common\ServiceException;
- 要实例化服务客户端,您还需要一个有效的 连接字符串。格式为
DefaultEndpointsProtocol=[http|https];AccountName=[yourAccount];AccountKey=[yourKey]
或
FileEndpoint=[myFileEndpoint];SharedAccessSignature=[sasToken]
- 实例化客户端对象 - 一个包装了给定服务的可用调用的包装器。
$fileClient = FileRestProxy::createFileService($connectionString);
使用中间件
要指定中间件,用户需要创建一个包含中间件的数组,并将其放入具有键 'middlewares' 的 $requestOptions
中。数组的顺序将影响中间件调用的顺序。通常可以在API调用的选项中设置 $requestOptions
,例如 MicrosoftAzure\Storage\File\Models\ListSharesOptions
。
用户在创建时,可以将中间件推入服务中$_options
的键'middleware'的数组中,如果中间件要应用于每个REST代理的API调用。这些中间件将始终在$requestOptions
中的中间件之后被调用。例如:
$fileClient = ListSharesOptions::createFileService( $connectionString, $optionsWithMiddlewares );
每个中间件应该是实现MicrosoftAzure\Storage\Common\Internal\IMiddleware
的子类的实例,或者是一个遵循Guzzle中间件实现约定的callable
。
用户可以创建继承自MicrosoftAzure\Storage\Common\Internal\Middlewares\MiddlewareBase
的自定义中间件。
使用代理
要在HTTP请求期间使用代理,请设置系统变量HTTP_PROXY
,然后将会使用代理。
故障排除
错误:无法获取本地颁发者证书
当尝试向Azure存储服务发起请求调用时,cURL无法验证Microsoft证书的有效性。您必须按照以下步骤配置cURL在发起https请求时使用证书:
-
从cURL网站下载cacert.pem文件。
-
然后执行以下操作之一:
- 打开您的php.ini文件并添加以下行
curl.cainfo = "<absolute path to cacert.pem>"
或者 - 在创建代理时将选项指向cacert。
$options["http"] = ["verify" => "<absolute path to cacert.pem>"]; FileRestProxy::createFileService($connectionString, $options);
- 打开您的php.ini文件并添加以下行
代码示例
您可以在示例文件夹中找到示例。
从Azure SDK for PHP迁移
如果您使用Azure SDK for PHP来访问Azure存储服务,我们强烈建议您迁移到这个SDK,以实现更快的故障排除和更快的功能实现。我们正在努力支持最新的服务功能以及改进现有的API。
目前,Microsoft Azure Storage PHP客户端库几乎与Azure SDK for PHP中的存储blob、tables、queues和files API共享相同的接口。然而,在迁移过程中需要解决一些小的破坏性变化。您可以在BreakingChanges.md中找到详细信息。
需要帮助?
如果您在使用提供的代码时遇到问题,请务必查看Microsoft Azure在Stack Overflow上的开发者论坛和github issues。
贡献代码或提供反馈
如果您想成为这个项目的积极贡献者,请遵循Azure项目贡献指南中提供的说明。您可以在CONTRIBUTING.md中找到更多关于贡献的详细信息。
如果您在库中遇到任何错误,请在项目的Issues部分提交问题。