我能够使用我的KEY / Secret和PATH将AWS s3与Cyberduck连接,并且还能够在那里查看我的文件。但是当我尝试使用PHP Api连接并列出存储桶时,我得到0结果。我注意到没有路径变量S3Client(这会有什么不同吗?)问,因为如果我不在Cyberduck中使用PATH,我看不到文件。
$s3 = new Aws\S3\S3Client([
'version' => 'latest',
'region' => 'us-east-1',
'credentials' => [
'key' => 'KEY',
'secret' => 'SECRET',
],
]);
当我这样做时:
$result = $s3->listBuckets();
var_dump($result);
返回:(我自己删除了“REMOVED”。)
object(Aws\Result)#78 (1) {
["data":"Aws\Result":private]=>
array(3) {
["Buckets"]=>
array(0) {
}
["Owner"]=>
array(2) {
["DisplayName"]=>
string(8) "REMOVED"
["ID"]=>
string(64) "REMOVED"
}
["@metadata"]=>
array(4) {
["statusCode"]=>
int(200)
["effectiveUri"]=>
string(25) "https://s3.amazonaws.com/"
["headers"]=>
array(6) {
["x-amz-id-2"]=>
string(76) "REMOVED="
["x-amz-request-id"]=>
string(16) "REMOVED"
["date"]=>
string(29) "Mon, 29 Jan 2018 18:04:57 GMT"
["content-type"]=>
string(15) "application/xml"
["transfer-encoding"]=>
string(7) "chunked"
["server"]=>
string(8) "AmazonS3"
}
["transferStats"]=>
array(1) {
["http"]=>
array(1) {
[0]=>
array(0) {
}
}
}
}
}
}
我试图通过阅读AWS S3文档来弄清楚,但我只找到了使用bucket选项列出文件的方法,但我不知道什么是存储桶名称。当桶名称列表为0时,我返回。但是所有文件都在那里。 我做错了吗?
答案 0 :(得分:0)
(代表问题作者发布,将其答案移至答案部分)。
这不是AWS S3问题。我发现这是一个权限问题。