有没有办法在不获取整个 blob 对象列表的情况下知道容器内是否存在 blob 文件?
谢谢,
如果您知道 blob 的地址,Azure SDK 的提示是首先构建 a CloudBlockBlob
(或 a CloudPageBlob
),然后调用FetchAttributes
. StorageClientException
如果找不到该 blob,此调用将抛出 a 。
从CloudBlobClient.GetBlockBlobReference
文档中:
FetchAttributes 方法执行 HEAD 请求以填充 blob 的属性和元数据,因此是确定 blob 是否存在的轻量级选项。
从 Windows Azure 存储客户端库 2.0 开始,blob 包含方法 Exists(),例如:blob.Exists()
也是如此BlobContainer
。
这是我正在使用的代码
public static bool Exists(this CloudBlob blob)
{
try
{
blob.FetchAttributes();
return true;
}
catch (StorageClientException e)
{
if (e.ErrorCode == StorageErrorCode.ResourceNotFound)
{
return false;
}
else
{
throw;
}
}
}