我将各种类型的文件存储在Amazon S3上。在Amazon S3存储桶中,所有文件都存储在不同的文件夹中,我知道Amazon S3中没有文件夹的概念。对象仅由其键标识。如果我使用像“mydocs / personal / profile-pic.jpg”这样的键存储任何文件,则表示将创建两个父文件夹(mydocs文件夹中的personal文件夹)。
我想在Java中计算任何文件夹(如'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;
}
此方法将返回存储桶的总大小。我想计算任何单个文件夹的大小。非常感谢您的帮助。