一种了解Azure API是否存在Blob对象的方法

时间:2012-06-10 11:13:52

标签: azure azure-storage azure-storage-blobs

有没有办法知道blob文件是否存在于容器中而没有获取整个blob对象列表?

谢谢,

3 个答案:

答案 0 :(得分:2)

如果您知道blob的地址,Azure SDK中的提示是首先构建CloudBlockBlob(或CloudPageBlob),然后调用FetchAttributes。如果无法找到blob,此调用将抛出StorageClientException

来自CloudBlobClient.GetBlockBlobReference文档:

  

FetchAttributes方法执行HEAD请求以填充   blob的属性和元数据,因此是一个轻量级选项   确定斑点是否存在。

答案 1 :(得分:1)

从Windows Azure存储客户端库2.0开始,blob包含方法Exists(),例如:blob.Exists()

BlobContainer也是如此。

答案 2 :(得分:0)

这是我正在使用的代码

    public static bool Exists(this CloudBlob blob)
    {
        try
        {   
            blob.FetchAttributes();
            return true;
        }
        catch (StorageClientException e)
        {
            if (e.ErrorCode == StorageErrorCode.ResourceNotFound)
            {
                return false;
            }
            else
            {
                throw;
            }
        }
    }