我是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
我应该使用哪个地区?为什么我可以列出桶,但不能使用它们?
答案 0 :(得分:1)
所以第一个问题:
我应该使用哪个地区?
您应该使用区域eu-west-2
Here是所有地区文档的链接。
现在谈到另一个问题:
如何利用水桶?
此错误强烈表明您有错误区域。所以我会考虑更改区域然后再试一次。