Azure Lei Zhang的博客

weibo: LeiZhang的微博/QQ: 185165016/QQ群:319036205/邮箱:leizhang1984@outlook.com/TeL:139-161-22926

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  390 随笔 :: 0 文章 :: 394 评论 :: 0 引用

  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,稍等一段时间以后,就可以显示该存储账号的总容量大小了。

如下图:

 

 

posted on 2012-06-19 20:22 Lei Zhang的博客 阅读(...) 评论(...) 编辑 收藏