当我尝试从公共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连接,这也是我知道文件名的原因。
由于
答案 0 :(得分:1)
由于它是公共存储桶,请尝试设置'凭据'为假:
$s3 = new Aws\S3\S3Client([
'region' => 'eu-west-1',
'version' => 'latest',
'credentials' => false
]);
那应该有用