列出对象

时间:2017-08-25 08:31:46

标签: php amazon-s3 aws-sdk

当我尝试从公共s3存储桶中获取对象时,我得到null或一个奇怪的响应,当我var_dump它时,它是一个空的Object(生成器)。

$s3 =  new Aws\S3\S3Client([
    'region' => 'eu-west-1',
    'version' => 'latest'
]);

$result0 = $s3->listObjects([
    'Bucket' => 'pub-bucket-name'
]);

$result1 = $s3->getIterator(
    'ListObjects', 
    ['Bucket' => 'pub-bucket-name']
);

$result2 = $s3->getObject([
    'Bucket' => 'pub-bucket-name',
    'Key' => 'a_known_filename.json'
]);

结果0和2为空,结果1为空的生成器对象。

有人知道为什么会这样吗? 我确信桶名称是公开的,因为我可以通过3Hub连接,这也是我知道文件名的原因。

由于

1 个答案:

答案 0 :(得分:1)

由于它是公共存储桶,请尝试设置'凭据'为假:

$s3 =  new Aws\S3\S3Client([
    'region' => 'eu-west-1',
    'version' => 'latest',
    'credentials' => false
]);

那应该有用