php - 列出对象时 S3Client 上的空响应或奇怪响应

标签 php amazon-s3 aws-sdk

当我尝试从公共(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/

相关文章:

php - 识别和连接表之间的 ID

php - 使用数据库中的值进行动态邮件配置 [Laravel]

python - amazon s3 get_key成功后指定的key不存在

amazon-web-services - 我们是否需要目录结构逻辑来在 Amazon S3/Cloudfront 上存储数百万张图像?

ios - 为什么将排序键用作 filterExpression 时 AWSDynamoDBScanExpression 返回空值?

javascript - 如何使用从 javascript 传递的变量加载 PHP 页面

php - Mysql根据时间戳循环遍历数据库?

amazon-web-services - 捕获 S3 文件下载开始和结束时间以及其他详细信息

java - 使用 Java SDK 将记录放入 Kinesis 流时,sequenceNumberForOrdering 到底做了什么?

java - 读取/更新操作时出现 Dynamodb ConditionalCheckFailedException - java sdk