【问题标题】:S3 client initialization error via PHP SDK通过 PHP SDK 的 S3 客户端初始化错误
【发布时间】:2016-02-09 05:01:13
【问题描述】:

我正在尝试从 AWS PHP SDK 初始化 S3 客户端。我的代码如下:

$credentials = new Credentials(self::KEY, self::SECRET);

$s3_client = new S3Client([
    'version'     => 'latest',
    'region'      => $region,
    'credentials' => $credentials
]);

但出现以下错误:

遇到了 PHP 错误

严重性:4096

消息:传递给 Aws\Common\Client\AbstractClient::__construct() 的参数 1 必须实现接口 Aws\Common\Credentials\CredentialsInterface,给定数组,在 /opt/showhouse/www/application/models/showhouse/ 中调用common/services/aws/aws.php 在第 47 行并定义 文件名:Client/AbstractClient.php

行号:73

任何想法我哪里出错了?我正在使用通过 Composer 安装的最新版本的 SDK。

【问题讨论】:

    标签: php amazon-web-services amazon-s3 aws-sdk


    【解决方案1】:

    我猜您正在使用 AWS PHP SDK 2.0 版。如果是这样,那么 S3Client 确实实现了 AbstractClient 类。这意味着参数是: __construct(Aws\Common\Aws\Common\Credentials\CredentialsInterface $credentials, Aws\Common\Aws\Common\Signature\SignatureInterface $signature, Guzzle\Common\Collection $config)

    您尝试使用的 S3Client 实施来自 AWS PHP SDK 3.0 版。

    【讨论】:

      【解决方案2】:

      建议:尝试使用下载的 zip 文件安装 AWS SDK 而不是 Composer

      我在使用 Composer 安装 AWS SDK 时遇到了同样的问题,因为它似乎是来自以下 URL 的 AWS 文档中的推荐方式。

      https://docs.aws.amazon.com/aws-sdk-php/v3/guide/getting-started/installation.html

      但是,在阅读了 Grilly 的有用答案后,我决定尝试使用下载的 zip 文件来安装 AWS SDK。我这样安装后问题就消失了。

      从 zip 文件中包含的 README 文件中,我可以找到使用下载的 zip 文件安装的 AWS SDK 版本为 3.0.0 的通知。虽然我无法检查使用 Composer 安装的 AWS SDK 的版本,因为我找不到方法,但我猜测使用 Composer 安装的 AWS SDK 版本有点旧,足以导致问题。

      【讨论】:

        【解决方案3】:

        我遇到了同样的问题,并通过使用 PHP 5.6 和 AWS SDK v3.x 解决了

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-04-25
          • 1970-01-01
          • 2022-08-10
          • 1970-01-01
          相关资源
          最近更新 更多