给定N个容器找到blob

时间:2013-07-02 06:52:31

标签: c# .net azure

我们有一个设置,其中给定的uuid标记blob可以在N个容器中的一个中,也可以不存在。

如果找到或报告blob不存在,返回blob并行检查所有容器的最佳方法是什么?

我们的容器名称是日期,在任何给定时间不会超过五个只有一个blob。

1 个答案:

答案 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;
            }
        }
    }
}