代码之家  ›  专栏  ›  技术社区  ›  alwayslearning

仅当blob存在时获取Azure blob元数据

  •  0
  • alwayslearning  · 技术社区  · 7 年前

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

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

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

    我试着把这两个电话合二为一

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

    医生们 AccessCondition.GenerateIfExistsCondition() “说-

    构造一个访问条件,使操作 仅当资源存在时执行。

    但它仍然失败,没有找到404。

    你知道我想要实现什么是可能的吗?我可能做错了什么?

    1 回复  |  直到 7 年前
        1
  •  1
  •   juunas    7 年前

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

    它基本上是对blob的一个HEAD请求,没有提到header是否匹配等。

    所以我认为最好的方法就是调用FetchAttributesAsync。 如果这导致了404,那么这个斑点就不存在了。 它只执行一个HTTP请求。