我有一个S3存储桶,里面有很多文件,以至于获取所有文件然后迭代等等,性能不够好。我希望能够通过S3文件名一次从存储桶中获取500个左右的文件。但是我不知道如何在不向S3发出单独请求的情况下做到这一点,我可以以某种方式批量处理吗?
现在我的对象请求看起来像:
ListObjectsRequest objectsRequest = new ListObjectsRequest()
.withBucketName(getBucketName())
.withPrefix(getPrefix());
然后我显然必须迭代它们,并寻找我想要的500个左右(这真的很慢,因为桶很大)。
我希望能够做一些事情,比如:
ListObjectsRequest objectsRequest = new ListObjectsRequest()
.withBucketName(getBucketName())
.withPrefix(getPrefix())
.withFileNames(getFileNames());
它会返回我正在寻找的500个左右的文件。
我怎么能这么做?这可能吗?
1条答案
按热度按时间ttcibm8c1#
如果这是一次性活动,您可以使用Amazon S3 Inventory,它可以提供列出所有对象的每日或每周CSV文件。
然后,您可以从此列表填充数据库。
该列表包括对象名称和对象大小,这就是您要查找的对象。