aws s3 sdk php在getObjects时遇到永久重定向

时间:2018-02-15 07:19:49

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

我是AWS s3的新手,试图找出如何在php中使用它。 我开始使用,我可以使用s3-> listBuckets方法列出我的所有存储桶,但是当我尝试列出此存储桶中的所有对象时,它会失败

  

PHP致命错误:未捕获   Aws \ S3 \ Exception \ PermanentRedirectException:遇到一个永久物   请求时重定向   https://s3.us-east-2.amazonaws.com/ischool.simplein?encoding-type=url。   您确定要为此存储桶使用正确的区域吗?在   /Users/momen/Desktop/studio/s3/sdk/vendor/aws/aws-sdk-php/src/S3/PermanentRedirectMiddleware.php:49   堆栈跟踪:

重点是,我拥有的凭据是针对us-west-2帐户的,但是当我创建s3存储桶时,我选择在eu-london中托管它。

用于复制问题的示例代码。

require('vendor/autoload.php');
// Use the us-west-2 region and latest version of each client.

$s3 = new Aws\S3\S3Client([
    'version' => 'latest',
    'region'  => 'us-east-2',
    'credentials' => [
        'key'    => AWS_KEY,
        'secret' => AWS_SECRET
    ]
]);


$buckets = $s3->listBuckets(); // works
$bucket = $buckets['Buckets'][1]['Name'];

$objects = $s3->listObjects([ 'Bucket' => $bucket ]) // FAIL with permenant redirect

我应该使用哪个地区?为什么我可以列出桶,但不能使用它们?

1 个答案:

答案 0 :(得分:1)

所以第一个问题:

  

我应该使用哪个地区?

您应该使用区域eu-west-2

Here是所有地区文档的链接。

现在谈到另一个问题:

  

如何利用水桶?

此错误强烈表明您有错误区域。所以我会考虑更改区域然后再试一次。

以下是其他相关问题:Amazon S3 Upload error PermanentRedirectException