gpt4 book ai didi

java - getObjectSummaries 会获取存储在 S3 存储桶中的对象的数量吗?

转载 作者:行者123 更新时间:2023-11-30 11:09:32 24 4
gpt4 key购买 nike

我需要知道存储在 S3 下的文件数量桶。目前,ObjectListing没有类似 count 的方法或 numberOfObject .

但是,它有一个方法会返回 S3ObjectSummary 的列表.

public java.util.List<S3ObjectSummary> getObjectSummaries()

因为它是 List , 我可以打电话 size()方法,但假设 getObjectSummaries() 的大小是否准确和正确? List 是存储在一个 bucket 下的相同数量的对象吗?

最佳答案

不——更准确的说法是 getObjectSummaries() 的大小是您收到的 listObjects() 结果页面中的对象数.否则,是的——列表中的每个对象摘要应该对应于一个 S3 对象是正确的。

AWS 将大型结果集的结果分页为每页 1,000 个结果。在一般情况下,您需要多次进行此调用:

  • 如果isTruncated()是真的,调用getNextMarker()获取下一个标记以在下一个 ListObjectsRequest 中使用到 listObjects() .

  • 如果为 false,您收到的最后一个响应将是您需要处理的最后一个响应。此时您可以完成对象的计数。

考虑到这一点,对于非常大的存储桶来说,这不是一个很好的解决方案,因为您必须枚举整个存储桶。这是 an alternative solution使用 s3cmd您可以从 Java 调用。

关于java - getObjectSummaries 会获取存储在 S3 存储桶中的对象的数量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28113605/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com