microsoft/azure-storage-file

此项目提供了一组PHP客户端库,可以轻松访问Microsoft Azure存储文件API。

1.2.5 2021-10-09 03:30 UTC

README

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

此项目提供了一组PHP客户端库,可以轻松访问Microsoft Azure存储文件服务。有关如何在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-file": "*"
  }
}
  1. 在项目根目录下下载 composer.phar

  2. 打开命令提示符,并在项目根目录下执行以下命令

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请求时使用证书:

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

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

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

代码示例

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

从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部分提交问题。