【IT168微软云计算博客征文活动专稿】如何计算Blob在特定容器中使用的总字节大小呢?在容器级目前没有相关API可以直接检索出这个信息,但可以通过枚举Blob的方法来计算,代码如下:
var totalBytes = (from CloudBlob blob in
container.ListBlobs(new BlobRequestOptions() { UseFlatBlobListing = true })
select blob.Properties.Length
).Sum();
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();
select
(from CloudBlob blob in
container.ListBlobs(new BlobRequestOptions() { UseFlatBlobListing = true })
select blob.Properties.Length
).Sum()
).Sum();
注意,这里计算出的字节数与你购买的容量并不想等,如页Blob中的空页,块Blob中未提交的块,快照和元数据等,这些都会影响到你帐户可以使用的有效总容量,上面的代码只是简单的汇总了一下所有Blob的大小,你也可以进一步改进它,如嵌入到网页中,或以图表的形式展示出来。