我需要获取Azure blob(如果存在)的元数据,并希望通过最少的REST调用(通过存储SDK到存储服务)来实现。
我知道我可以做类似的事情
CloudBlockBlob.ExistsAsync()
,然后CloudBlockBlob.FetchAttributesAsync()
(如果存在)我试图将这两个呼叫合并为一个
CloudBlockBlob.FetchAttributesAsync(AccessCondition.GenerateIfExistsCondition(),new BlobRequestOptions(), new OperationContext());
“ AccessCondition.GenerateIfExistsCondition()”上的文档说-
构造访问条件,以便进行操作 仅在资源存在时执行。
,但仍然失败,找不到404。
是否知道我想要实现的目标甚至可能是我做错了?
答案 0 :(得分:1)
查看该操作的文档:https://docs.microsoft.com/en-us/rest/api/storageservices/get-blob-properties。
从本质上讲,这是对blob的HEAD请求,并且标头没有提及If-Match等。
所以我认为最理想的方法是调用FetchAttributesAsync。 如果那导致404,则说明该斑点不存在。 它只执行1个HTTP请求。