小编Has*_*eeb的帖子

在java中计算S3对象(文件夹)大小

我将所有类型的文件存储在亚马逊 S3 上。在亚马逊S3存储桶中,所有文件都存储在不同的文件夹中,我知道亚马逊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;
}
Run Code Online (Sandbox Code Playgroud)

此方法将返回存储桶的总大小。我想计算任何单个文件夹的大小。任何帮助将不胜感激。

java amazon-s3 amazon-web-services aws-sdk

6
推荐指数
1
解决办法
8323
查看次数

标签 统计

amazon-s3 ×1

amazon-web-services ×1

aws-sdk ×1

java ×1