《Windows Azure Platform 系列文章目录》
熟悉Windows Azure的网友都知道,Windows Azure Storage有三种:分别是Blob、Table和Queue。Blob可以存储二进制文件,比如图片、照片、Word、Excel文件等等。而Windows Azure Storage是按需收费的,控制好Blob存储容量的大小可以让我们更好的控制成本。
到目前为止,微软还没有开放API计算某一个Blob Container的大小,但是你可以通过以下的代码来计算:
var totalBytes = (from CloudBlob blob in container.ListBlobs(new BlobRequestOptions() { UseFlatBlobListing = true }) select blob.Properties.Length ).Sum();
同样的道理,我们可以通过枚举所有的container来计算整个Blob Storage的大小。下面的代码将会计算某一个Storage Account下存储的所有的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();
请注意:计算的结果并不是你要支付的全部内容。像空白的Page Blobs,未提交的Block Blobs,快照,元数据等都会影响您账户中使用的总存储量。上面的代码片段只是简单的计算了您存储的Blob的大小。
参考:http://blog.smarx.com/posts/computing-the-total-size-of-your-blobs
2014-10-29 更新
另外,SDK 1.7以后版本,相应的API已经改变了
针对新的SDK,可以参考我开发的代码,相应的源代码可以在这里下载
http://files.cnblogs.com/threestone/ComputeBlobSize.rar
2015-02-28更新
Azure Management Portal已经提供对于Blob存储容量的监控了
我们登陆https://manage.windowsazure.com,选择存储账号,在设置中,选择Monitoring->Minimal,如下图:
保存好以后,在Monitor里,点击Add Metrics,如下图:
在弹出的界面中,选择Capacity,稍等一段时间以后,就可以显示该存储账号的总容量大小了。
如下图: