我们有一个设置,其中给定的uuid标记blob可以在N个容器中的一个中,也可以不存在。
如果找到或报告blob不存在,返回blob并行检查所有容器的最佳方法是什么?
我们的容器名称是日期,在任何给定时间不会超过五个只有一个blob。
答案 0 :(得分:1)
你可以使用CloudBlob.FetchAttributes()
在blob上执行HEAD,如果失败则抛出异常。 (基本上测试是否存在)
所以只需创建你的容器& blob在循环中处理,测试是否存在,如果为true则返回。
public static class BlobExtensions
{
public static bool Exists(this CloudBlob blob)
{
try
{
blob.FetchAttributes();
return true;
}
catch (StorageClientException e)
{
if (e.ErrorCode == StorageErrorCode.ResourceNotFound)
{
return false;
}
else
{
throw;
}
}
}
}