microsoft/ azure-storage-blob
该项目提供了一套PHP客户端库,可轻松访问Microsoft Azure Storage Blob API。
Requires
- php: >=5.6.0
- microsoft/azure-storage-common: ~1.5
This package is not auto-updated.
Last update: 2024-09-10 21:36:07 UTC
README
有关该项目退役和替代方案,请访问退役通知:Azure Storage PHP客户端库将于2024年3月17日退役。
该项目提供了一个PHP客户端库,可轻松访问Microsoft Azure Storage blob服务。有关如何在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-blob": "*" } }
-
在项目根目录中下载composer.phar
-
打开命令提示符,并在项目根目录中执行此操作
php composer.phar install
用法
在使用库调用任何Microsoft Azure Storage API之前,必须执行以下四个基本步骤。
- 首先,包含自动加载脚本
require_once "vendor/autoload.php";
-
包含您将要使用的命名空间。
要创建任何Microsoft Azure服务客户端,您需要使用REST代理类,例如BlobRestProxy类
use MicrosoftAzure\Storage\Blob\BlobRestProxy;
要处理异常,您需要
use MicrosoftAzure\Storage\Common\ServiceException;
- 要实例化服务客户端,您还需要一个有效的连接字符串。格式为
DefaultEndpointsProtocol=[http|https];AccountName=[yourAccount];AccountKey=[yourKey]
或
BlobEndpoint=[myBlobEndpoint];SharedAccessSignature=[sasToken]
- 实例化客户端对象 - 它包装了给定服务的可用调用。
$blobClient = BlobRestProxy::createBlobService($connectionString);
或对于令牌身份验证
$blobClient = BlobRestProxy::createBlobServiceWithTokenCredential($token, $connectionString);
使用中间件
要指定中间件,用户需要创建一个包含中间件的数组,并将其放入键为'middlewares'的$requestOptions
中。数组的顺序将影响中间件调用的顺序。$requestOptions
通常可以在API调用的选项中设置,例如MicrosoftAzure\Storage\Blob\Models\ListBlobOptions
。
如果中间件要应用于每个REST代理的API调用,用户在创建服务时可以在服务的$_options
中用键'middlewares'将中间件推送到数组中。这些中间件将始终在$requestOptions
中的中间件之后调用。例如:
$blobClient = BlobRestProxy::createBlobService( $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>"]; BlobRestProxy::createBlobService($connectionString, $options);
- 打开您的php.ini文件,并添加以下行
代码示例
您可以在示例文件夹中找到示例。
从Azure SDK for PHP迁移
如果您正在使用Azure SDK for PHP来访问Azure存储服务,我们强烈建议您迁移到此SDK以实现更快的问题解决和更快的功能实现。我们正在努力支持最新的服务功能以及改进现有的API。
目前,Microsoft Azure Storage PHP客户端库与Azure SDK for PHP中存储块、表、队列和文件API的接口几乎相同。但是,在迁移过程中需要解决一些小的破坏性更改。您可以在BreakingChanges.md中找到详细信息。
需要帮助?
如果您在使用提供的代码时遇到问题,请务必检查Microsoft Azure在Stack Overflow上的开发者论坛和github问题。
贡献代码或提供反馈
如果您想成为此项目的积极参与者,请按照Azure项目贡献指南中提供的说明操作。您可以在CONTRIBUTING.md中找到更多关于贡献的详细信息。
如果您在库中发现任何错误,请在该项目的问题部分提交问题。