microsoft/azure-storage-blob

该项目提供了一套PHP客户端库,可轻松访问Microsoft Azure Storage Blob API。

1.5.4 2022-09-02 02:13 UTC

README

有关该项目退役和替代方案,请访问退役通知:Azure Storage PHP客户端库将于2024年3月17日退役

该项目提供了一个PHP客户端库,可轻松访问Microsoft Azure Storage blob服务。有关如何在Microsoft Azure上托管PHP应用程序的文档,请参阅Microsoft Azure PHP开发者中心

Latest Stable Version

注意

功能

    • 创建、列出和删除容器,处理容器元数据和权限,列出容器中的块
    • 创建块和页块(从流或字符串),处理块和页,删除块
    • 处理块属性、元数据、租约,快照块

请查看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安装

  1. 在项目根目录中创建一个名为composer.json的文件,并将其添加以下代码
{
  "require": {
    "microsoft/azure-storage-blob": "*"
  }
}
  1. 在项目根目录中下载composer.phar

  2. 打开命令提示符,并在项目根目录中执行此操作

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请求:

  1. cURL网站下载cacert.pem文件。

  2. 然后执行以下操作之一:

    • 打开您的php.ini文件,并添加以下行
      curl.cainfo = "<absolute path to cacert.pem>"
      或者
    • 在创建代理时将cacert指向选项。
      $options["http"] = ["verify" => "<absolute path to cacert.pem>"];
      BlobRestProxy::createBlobService($connectionString, $options);

代码示例

您可以在示例文件夹中找到示例。

从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中找到更多关于贡献的详细信息。

如果您在库中发现任何错误,请在该项目的问题部分提交问题。