如何在列出对象时更改AWS S3 V2 Java api的限制[对于具有超过10亿个对象的存储桶]?

时间:2017-09-23 19:49:29

标签: java amazon-web-services amazon-s3 amazon aws-java-sdk

我正在开发项目,我需要从Amazon S3存储桶下载密钥,该存储桶拥有超过10亿个对象。我使用Java V2 API编写了一个代码,但它没有帮助,因为它一次只下载1000个密钥。从这个桶中获取所有密钥的列表需要几天的时间。有没有更快的方法来获取所有键列表。

我已经检查了与此主题相关的其他答案,但没有帮助。

由于

1 个答案:

答案 0 :(得分:1)

我们遇到了大量对象的相同问题。

我们在对象名称中以10个增量跟随模式时间戳。它看起来像这样,

s3://bucket-name/timestamp/actualobject.extension

Eg.,
s3://mys3bucket/1506237300/datafile001.json

当您遍历时,我为每个时间戳运行并行线程,以15分钟为增量,并且所有内容都被非常快速地读取。

要解决的关键方法是找出用于存储这些对象的模式,并根据这些模式列出对象名称。

希望它有所帮助。