0

我正在尝试摆脱我当前的身份验证模型:

$s3_cfg = S3Client::factory(array(
    'key' => 'access',
    'secret' => 'secret'
             ));

并改用 Guzzle 服务模型(http://docs.aws.amazon.com/aws-sdk-php-2/guide/latest/service-s3.html#service-locator

这是我到目前为止所拥有的:

require '../s3up/vendor/autoload.php';
 use Aws\Common\Aws;
 $aws = Aws::factory('api.json');
 $client = $aws>get('apiauth');

和我的 api.json:

{
"includes": ["_aws"],
"services": {
  "apiauth": {
      "params": {
          "key": "access",
          "secret": "secret",
          "region": "us-west-2"
      }
  }
}
}

出于任何原因,我收到错误 500 和以下错误消息:

 Class '' not found in /s3up/vendor/guzzle/guzzle/src/Guzzle/Service/Builder/ServiceBuilder.php on line 141

我使用作曲家安装了 AWS php SDK2。如果我只是删除服务定位器并使用基本身份验证,一切都很好,所以我的 autoload.php 没有任何问题

我从http://docs.aws.amazon.com/awssdkdocsphp2/latest/gettingstartedguide/sdk-php2-using-the-sdk.html#sdk-php2-using-the-service-builder获得 JSON 语法

谢谢

4

1 回答 1

2

如果您希望这些密钥用于构建器创建的所有服务,那么您应该将“apiauth”更改为“default_settings”。然后,您将调用$aws->get('s3')以获取具有共享凭证的 Amazon S3 客户端。

于 2013-08-05T18:10:01.520 回答