我在亚马逊 S3 上存储所有类型的文件。在 amazon S3 存储桶中,所有文件都存储在不同的文件夹中,我知道 amazon s3 中没有文件夹的概念。对象仅由它们的键标识。如果我使用“mydocs/personal/profile-pic.jpg”之类的密钥存储任何文件,这意味着将在那里创建两个父文件夹(mydocs 文件夹中的个人文件夹)。
我想计算任何文件夹的大小,如 java 中的“mydocs”。我使用下面给出的代码计算了存储桶的总大小:
public long calculateBucketSize(String bucketName) {
long totalSize = 0;
int totalItems = 0;
ObjectListing objects = listObjects(bucketName);
do {
for (S3ObjectSummary objectSummary : objects.getObjectSummaries()) {
totalSize += objectSummary.getSize();
totalItems++;
}
objects = listNextBatchOfObjects(objects);
} while (objects.isTruncated());
System.out.println("Amazon S3 bucket: " + bucketName + " containing "
+ totalItems + " objects with a total size of " + totalSize
+ " bytes.");
return totalSize;
}
此方法将返回存储桶总大小。我想计算任何单个文件夹的大小。任何帮助将不胜感激。