AWS SDK PHP2 - Конструктор сервисов Guzzle

Я пытаюсь избавиться от моей текущей модели аутентификации:

$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

Я получаю синтаксис JSON из http://docs.aws.amazon.com/awssdkdocsphp2/latest/gettingstartedguide/sdk-php2-using-the-sdk.html#sdk-php2-using-the-service-builder

Спасибо


person PERPO    schedule 05.08.2013    source источник


Ответы (1)


Если вы хотите, чтобы эти ключи использовались для всех сервисов, которые создает конструктор, вам следует изменить apiauth на default_settings. Затем вы должны позвонить $aws->get('s3'), чтобы получить клиент Amazon S3 с общими учетными данными.

person Michael Dowling    schedule 05.08.2013
comment
Спасибо, Майкл :) Кстати: если кто-то захочет повторно использовать мой код, обязательно обновите: $ client = $ aws ›get ('s3'); с $ client = $ aws- ›get ('s3'); - person PERPO; 07.08.2013