繁体   English   中英

C#Azure Blob存储/获取blob大小

[英]C# Azure Blob Storage / Get blob size

我已经开始研究Azure存储了。 我已经实现了创建/删除容器,创建/删除/ isExist blob功能。 但我很惊讶从Azure存储中找到当前的Blob大小。

我做了很多研究,但我找不到任何合理的解决方案。

这是获取Blob大小的函数:

public long GetBlockBlobSize(string containerName, string blobName)
        {
            try
            {
                CloudBlobContainer container = _blobClient.GetContainerReference(containerName);
                var blockBlob = container.GetBlockBlobReference(blobName);
                return blockBlob.Properties.Length;
            }
            catch (Exception ex)
            {
                throw;
            }
        }

blockBlob.Properties.Length值为-1。

  • 这种方法有什么问题吗?
  • 有更好的方法吗?

谢谢!

请将您的代码更改为:

public long GetBlockBlobSize(string containerName, string blobName)
{
    try
    {
        CloudBlobContainer container = _blobClient.GetContainerReference(containerName);
        var blockBlob = container.GetBlockBlobReference(blobName);
        blockBlob.FetchAttributes();
        return blockBlob.Properties.Length;
    }
    catch (Exception ex)
    {
        throw;
    }
}

基本上,您的代码只是在客户端创建CloudBlockBlob的实例,因此使用默认值初始化属性。 调用FetchAttributes方法时,将从Azure存储中获取blob的实际属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM