我正在使用 AWS 与php sdk for zf2并使用其两项服务,第一项是ses(邮件服务),另一项是S3服务。
我已经在不同地区提供这些服务,因此使用配置文件( aws.local.php ),我只能按默认值一次指定一个。
所以我想使用两个不同的区域,一个用于s3,一个用于ses。
以下是我用于s3的示例代码。
$aws= $this->getServiceLocator()->get('aws');
$client = $aws->get('s3');
答案 0 :(得分:0)
请参阅creating a client section of the AWS SDK for PHP docs。您可以使用AWS \ Sdk类中客户端对应的create方法创建客户端。请注意,createS3 factory method(和其他服务工厂方法)采用一组参数。所有服务客户端都接受的常见参数记录在the Aws\AwsClient::__construct() method documentation中。我们可以看到region
是其中一个选项,因此您可以为各个服务指定区域,如下所示:
$myConfig = [
'region' => 'us-west-2',
];
// Create an Amazon S3 client using the shared configuration data.
$client = $sdk->createS3($myConfig);
根据要求获取PHP SDK v2信息的评论编辑: 最适合您的方法是升级到最新版本的SDK。它是一个有很多改进的主要版本,因此我强烈建议您更新。 但是,使用v2,您可以使用相应的Web服务客户端的factory()方法执行类似操作。例如,对于S3,您可以使用以下内容:
$s3Client = S3Client::factory(array(
'region' => 'us-east-1',
));