【问题标题】:Get Storage used by bucket in amazon s3 using C# SDK使用 C# SDK 在 amazon s3 中获取存储桶使用的存储空间
【发布时间】:2019-10-20 09:11:58
【问题描述】:

我的任务是提供一个 api 端点来找出特定模块在我们的 Amazon s3 存储桶中使用了多少空间。我正在使用 C# SDK。

我通过改编此处文档中的代码来实现这一点:https://docs.aws.amazon.com/AmazonS3/latest/dev/ListingObjectKeysUsingNetSDK.html

   private long GetUsedBytes(string module, string customer)
    {
        ListObjectsRequest listRequest = new ListObjectsRequest()
        {
            BucketName = BucketName,
            Prefix = module + "/" + customer
        };
        ListObjectsResponse listResponse;
        long totalSize = 0;
        do
        {
            listResponse = s3Client.ListObjects(listRequest);
            foreach (S3Object obj in listResponse.S3Objects)
            {
                totalSize += obj.Size;
            }
            listRequest.Marker = listResponse.NextMarker;
        } while (listResponse.IsTruncated);
        return totalSize;
    }

我的问题是:有没有办法使用 sdk 做到这一点,而不需要将所有实际的 s3objects 从桶中拉下来?使用 CLI 执行此操作有几个很好的答案:

AWS S3: how do I see how much disk space is using https://serverfault.com/questions/84815/how-can-i-get-the-size-of-an-amazon-s3-bucket

但我还没有找到直接使用 SDK 的。我是否必须以某种方式模仿 sdk 才能做到这一点?我考虑的另一种方法是获取所有键并查询它们的元数据,但获取我找到的所有键的唯一方法是获取上面链接中的所有对象^。如果有一种方法可以获取具有特定前缀的对象的所有元数据,那将是理想的。

感谢您的宝贵时间!

~乔什

【问题讨论】:

    标签: c# amazon-web-services amazon-s3 sdk


    【解决方案1】:

    您的代码没有从 Amazon S3 下载任何对象。它只是调用ListObjects() 并合计每个对象的大小。每 1000 个对象调用一次 API。

    或者,您可以从 Amazon CloudWatch 检索每个存储桶的大小

    来自Monitoring Metrics with Amazon CloudWatch - Amazon S3

    指标:BucketSizeBytes

    存储在存储桶中的数据量(以字节为单位)。该值是通过对存储桶中所有对象(当前和非当前对象)的大小求和来计算的,包括所有未完成的分段上传到存储桶的所有部分的大小。

    因此,只需从 Amazon CloudWatch 检索指标,而不是自己计算。

    【讨论】:

    • 如我所见,BucketSizeBytes 显示桶中所有对象的字节大小,但是如果我想查看特定对象的容量怎么办?可以查询吗?
    • @Dragon4ik Amazon CloudWatch 仅包含存储桶级指标。有关特定对象的信息,请使用 Amazon S3 ListObjects() API 调用。
    猜你喜欢
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 2015-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-10
    相关资源
    最近更新 更多