我正在尝试使用亚马逊的AWS SDK更快地计算s3存储桶中的所有对象。
private static int getBucketFileCount(AmazonS3 s3, ListObjectsV2Request req) {
ListObjectsV2Result result;
int fileCount = 0;
log.info("Counting s3 files");
do {
result = s3.listObjectsV2(req);
for (S3ObjectSummary objectSummary : result.getObjectSummaries()) {
fileCount++;
}
req.setContinuationToken(result.getNextContinuationToken());
} while (result.isTruncated() == true);
return fileCount;
}
然而,这种方法非常慢,我无法找到正确的方法。我找到了另一个有帮助的答案,但无法确切地弄清楚实现。 Will getObjectSummaries get the count of objects stored in a S3 Bucket?
如何在当前实施中使用getNextMarker()功能?我需要改变什么?