仅当Blob存在时才获取Azure Blob元数据

时间:2019-01-09 17:36:04

标签: c# azure azure-storage azure-storage-blobs

我需要获取Azure blob(如果存在)的元数据,并希望通过最少的REST调用(通过存储SDK到存储服务)来实现。

我知道我可以做类似的事情

  • CloudBlockBlob.ExistsAsync(),然后
  • CloudBlockBlob.FetchAttributesAsync()(如果存在)

我试图将这两个呼叫合并为一个

  • CloudBlockBlob.FetchAttributesAsync(AccessCondition.GenerateIfExistsCondition(),new BlobRequestOptions(), new OperationContext());

AccessCondition.GenerateIfExistsCondition()”上的文档说-

  

构造访问条件,以便进行操作   仅在资源存在时执行。

,但仍然失败,找不到404。

是否知道我想要实现的目标甚至可能是我做错了?

1 个答案:

答案 0 :(得分:1)

查看该操作的文档:https://docs.microsoft.com/en-us/rest/api/storageservices/get-blob-properties

从本质上讲,这是对blob的HEAD请求,并且标头没有提及If-Match等。

所以我认为最理想的方法是调用FetchAttributesAsync。 如果那导致404,则说明该斑点不存在。 它只执行1个HTTP请求。

相关问题