在 适用于 PHP 的 Amazon SDK 版本 3 的代码中配置服务客户端 - 适用于 PHP 的 Amazon SDK
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 适用于 PHP 的 Amazon SDK 版本 3 的代码中配置服务客户端

作为外部配置服务客户端的替代方案,或者除了在外部配置服务客户端之外,您还可以在代码中以编程方式对其进行配置。

通过在代码中配置服务客户端,您可以精细地控制许多可用的选项。可以在外部设置的大多数配置也可以在代码中进行设置。

代码中的基本配置

通过将关联的选项数组传递给客户端的构造函数,可以在代码中创建和配置服务客户端。在以下示例中,关联数组仅包含客户端使用的 “region” 选项:

require 'vendor/autoload.php'; use Aws\S3\S3Client; use Aws\Exception\AwsException; //Create an S3Client $s3 = new S3Client([ 'region' => 'eu-south-2' ]);

有关可选“版本”参数的信息,请参阅配置选项主题。

请注意,我们并未向客户端显式提供凭证。这是因为 SDK 使用默认的凭证提供商链来查找凭证信息。

适用于 PHP 的 Amazon SDK 版本 3 的客户端构造器选项 中详细介绍了所有通用的客户端配置选项。创建的客户端不同,提供的选项数组也不同。每个客户端的 API 文档中介绍了这些自定义客户端配置选项。

使用 Sdk

Aws\Sdk 类可作为客户端工厂,用于管理多个客户端的共享配置选项。许多可提供给特定客户端构造函数的选项也可提供给 Aws\Sdk 类。这些选项会应用于每个客户端构造函数。

导入

require 'vendor/autoload.php'; use Aws\S3\S3Client; use Aws\Exception\AwsException;

示例代码

// The same options that can be provided to a specific client constructor can also be supplied to the Aws\Sdk class. // Use the us-west-2 region and latest version of each client. $sharedConfig = [ 'region' => 'us-west-2' ]; // Create an SDK class used to share configuration across clients. $sdk = new Aws\Sdk($sharedConfig); // Create an Amazon S3 client using the shared configuration data. $client = $sdk->createS3();

所有客户端均可共享的选项置于根级别的键值对中。服务特定的配置数据可以在关联数组中提供,其密钥与服务的命名空间相同(例如,“S3”、“DynamoDb” 等)。

$sdk = new Aws\Sdk([ 'region' => 'us-west-2', 'DynamoDb' => [ 'region' => 'eu-central-1' ] ]); // Creating an Amazon DynamoDb client will use the "eu-central-1" Amazon Region. $client = $sdk->createDynamoDb();

特定于服务的配置值结合了特定于服务的值和根级值(即特定于服务的值浅合并到根级值)。

注意

如果您在应用程序中使用多个客户端实例,强烈建议您使用 Sdk 类来创建客户端。Sdk 类会自动针对每个开发工具包客户端使用同一 HTTP 客户端,允许不同服务的开发工具包客户端执行非阻塞 HTTP 请求。如果开发工具包客户端未使用同一 HTTP 客户端,则开发工具包客户端发送的 HTTP 请求可能会阻塞服务之间的 Promise 协调。