java 如何通过文件名列表从S3获取S3ObjectSummaries列表?

luaexgnf  于 2023-04-10  发布在  Java
关注(0)|答案(1)|浏览(161)

我有一个S3存储桶,里面有很多文件,以至于获取所有文件然后迭代等等,性能不够好。我希望能够通过S3文件名一次从存储桶中获取500个左右的文件。但是我不知道如何在不向S3发出单独请求的情况下做到这一点,我可以以某种方式批量处理吗?
现在我的对象请求看起来像:

ListObjectsRequest objectsRequest = new ListObjectsRequest()
        .withBucketName(getBucketName())
        .withPrefix(getPrefix());

然后我显然必须迭代它们,并寻找我想要的500个左右(这真的很慢,因为桶很大)。
我希望能够做一些事情,比如:

ListObjectsRequest objectsRequest = new ListObjectsRequest()
        .withBucketName(getBucketName())
        .withPrefix(getPrefix())
        .withFileNames(getFileNames());

它会返回我正在寻找的500个左右的文件。
我怎么能这么做?这可能吗?

ttcibm8c

ttcibm8c1#

如果这是一次性活动,您可以使用Amazon S3 Inventory,它可以提供列出所有对象的每日或每周CSV文件。
然后,您可以从此列表填充数据库。
该列表包括对象名称和对象大小,这就是您要查找的对象。

相关问题