如何使用 aws-sfk-php-zf2 v 2.0.* 获取 aws 服务?

How to get aws service with aws-sfk-php-zf2 v 2.0.*?

我使用的是 aws/aws-sdk-php-zf2 1.2.*,必须升级到 2.0.*,AWS SDK 现在是 v3。

在我使用代码调用它之前:

$this->s3 = $serviceLocator->get('aws')->get('s3');

但现在返回此错误:

Zend\ServiceManager\ServiceManager::get was unable to fetch or create an instance for aws

在迁移文档中找不到不同之处。

有什么建议吗?

您现在应该使用 SDK class 的 FQCN,而不是通过密钥获取服务:Aws

use Aws\Sdk as Aws;

$aws = $serviceLocator->get(Aws::class);

参见 aws/aws-sdk-php-zf2 模块的 module.config.php

我找到了适合我的方法。

现在是这样:

use Aws\S3\S3Client;

$this->s3 = S3Client::factory(array(
            'credentials' => array(
               'key' => $this->config['aws']['key'],
               'secret' => $this->config['aws']['secret'],
            ),
            'region' => $this->config['aws']['region'],
            'version' => '2006-03-01'
        ));