2015-09-23 3 views
-1

Я следующий Amazon s3 конфигурации:Amazon s3 конфигурации в PHP

$Connection = new S3Client(array(
     'version' => 'latest', 
     'region' => 'custom-region', 
     'endpoint' => 'http://mydomine.com', 
     'credentials' => [ 
      'key' => AWS_KEY, 
      'secret' => AWS_SECRET_KEY, 
      // 'token' => false, 
      //'canonical_id' => AWS_CANONICAL_ID, 
      // 'canonical_name' => AWS_CANONICAL_NAME, 
     ] 
    )); 

Но называя это:

print_r($Connection->listBuckets());

я получил:

PHP Fatal error: Uncaught exception 'Aws\S3\Exception\S3Exception' with message 'Error executing "ListBuckets" on " http://mydomine.com "; AWS HTTP error: Client error: 400 InvalidArgument (client): - InvalidArgument '

exception 'GuzzleHttp\Exception\ClientException' with message 'Client error: 400' in /home/kristineg/public_html/ocr/scanning/vendor/guzzlehttp/guzzle/src/Middleware.php:69 Stack trace: 0 /home/kristineg/public_html/ocr/scanning/vendor/guzzlehttp/promises/src/Promise.php(199): GuzzleHttp\Middleware::GuzzleHttp{closure}(Object(GuzzleHttp\Psr7\Response)) 1 /home/kristineg/public_html/ocr/scanning/vendor/guzzlehttp/promises/src/Promise.php(152): GuzzleHttp\Promise\Promise::callHandler(1, Object(GuzzleHttp\Psr7\Response), Array) 2 /home/kristineg/public_html/ocr/scanning/vendor/guzzlehttp/promises/src/TaskQueue.php(60): GuzzleHttp\Promise\Promise::GuzzleHttp\Promise{closure}() 3 /home/kristineg/public_html/ocr/scanning/vendor/guzzlehttp/gu in /home/kristineg/public_html/ocr/scanning/vendor/aws/aws-sdk-php/src/WrappedHttpHandler.php on line 152

Как я понимаю, клиент настроен неправильно, но я не могу представить, что именно :(

Возможно, у кого-то есть идея?

p.s. установленный с помощью композитора типа:

{ 
    "require": { 
     "aws/aws-sdk-php": "^3.3", 
     "doctrine/cache": "^1.4", 
     "aws/aws-sdk-php-resources": "^0.3.0" 
    } 
} 
+0

Как вы создаете объект? – ajameswolf

+1

Вы не можете просто установить свою собственную «область» или «конечную точку», которая не является конечной точкой Amazon, то есть 'http: // mydomine.com' – cmorrissey

+0

Но если служба будет размещаться на моем собственном оборудовании, а не Amazon? –

ответ

0

Я поеду с более старой версией, здесь мне не нужно указывать регион. :)

$client = S3Client::factory([ 
     'key' => Yii::$app->params['amazonS3']['accessKey'], 
     'secret' => Yii::$app->params['amazonS3']['secretKey'], 
     'base_url' => Yii::$app->params['amazonS3']['endpoint'], 
    ]); 
Смежные вопросы