没有桶用aws-sdk-php列出amazon aws s3?

时间:2018-01-29 18:10:55

标签: php amazon-s3

我能够使用我的KEY / Secret和PATH将AWS s3与Cyber​​duck连接,并且还能够在那里查看我的文件。但是当我尝试使用PHP Api连接并列出存储桶时,我得到0结果。我注意到没有路径变量S3Client(这会有什么不同吗?)问,因为如果我不在Cyber​​duck中使用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时,我返回。但是所有文件都在那里。 我做错了吗?

1 个答案:

答案 0 :(得分:0)

(代表问题作者发布,将其答案移至答案部分)

这不是AWS S3问题。我发现这是一个权限问题。