云计算 频道

如何计算特定容器中Blob的总大小?

  【IT168微软云计算博客征文活动专稿】如何计算Blob在特定容器中使用的总字节大小呢?在容器级目前没有相关API可以直接检索出这个信息,但可以通过枚举Blob的方法来计算,代码如下:

    var totalBytes = (from CloudBlob blob in
                      container.ListBlobs(
new BlobRequestOptions() { UseFlatBlobListing = true })
                      
select blob.Properties.Length
                     ).Sum();

  进一步我们可以枚举所有的容器,下面的代码就是计算特定帐户Blob所有Blob的总大小:

    var totalBytes = (from container in blobClient.ListContainers()
                      
select
                      (from CloudBlob blob in
                       container.ListBlobs(
new BlobRequestOptions() { UseFlatBlobListing = true })
                      
select blob.Properties.Length
                      ).Sum()
                     ).Sum();

  注意,这里计算出的字节数与你购买的容量并不想等,如页Blob中的空页,块Blob中未提交的块,快照和元数据等,这些都会影响到你帐户可以使用的有效总容量,上面的代码只是简单的汇总了一下所有Blob的大小,你也可以进一步改进它,如嵌入到网页中,或以图表的形式展示出来。

0
相关文章