我有一个S3桶,里面有很多文件,所以要得到所有的文件,然后迭代等等,只是性能不够。我希望能够通过S3文件名一次从桶中抓取500个左右。但我不确定如何做到这一点,而不向S3发出单独的请求,我能以某种方式批处理这个吗?
现在我的对象请求如下:
ListObjectsRequest objectsRequest = new ListObjectsRequest()
.withBucketName(getBucketName())
.withPrefix(getPrefix());
然后我显然必须遍历它们,并寻找我想要的500个左右(这真的很慢,因为桶很大)。
我希望能做这样的事情:
ListObjectsRequest objectsRequest = new ListObjectsRequest()
.withBucketName(getBucketName())
.withPrefix(getPrefix())
.withFileNames(getFileNames());
它将返回我正在寻找的500个左右的文件。
我该怎么做?这可能吗?
如果这是一次性的活动,您可以使用Amazon S3 Inventory,它可以提供列出所有对象的每日或每周CSV文件。
你可以从这个列表中填充你的数据库。
该列表包括对象名称和对象的大小,这就是您要查找的。