我正在尝试找到一种更快的方法来使用 Amazon 的 AWS 开发工具包计算 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;
}
但是,这种方法非常慢,我还没有找到正确的方法。我找到了另一个有帮助的答案,但无法准确地弄清楚实现。 getObjectSummaries 会获取存储在 S3 存储桶中的对象数量吗?
如何在当前实现中使用getNextMarker()函数?我需要改变什么?