当我尝试从公共(public) s3 存储桶中获取对象时,我得到 null 或奇怪的响应,当我 var_dump 它时,它是一个空对象(生成器)。
$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 连接,这也是我知道文件名的原因。
谢谢
最佳答案
由于它是公共(public)存储桶,请尝试将“credentials”设置为 false:
$s3 = new Aws\S3\S3Client([
'region' => 'eu-west-1',
'version' => 'latest',
'credentials' => false
]);
这应该有效
关于php - 列出对象时 S3Client 上的空响应或奇怪响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45877370/