c# - 仅当 blob 存在时才获取 Azure blob 元数据
问题描述
我需要获取 Azure blob 的元数据(如果存在)并希望通过最少的 REST 调用来实现这一点(通过存储 SDK 到存储服务)
我知道我可以做类似的事情
CloudBlockBlob.ExistsAsync()
接着CloudBlockBlob.FetchAttributesAsync()
如果 blob 存在
我试图将这两个调用合二为一
CloudBlockBlob.FetchAttributesAsync(AccessCondition.GenerateIfExistsCondition(),new BlobRequestOptions(), new OperationContext());
' AccessCondition.GenerateIfExistsCondition() '上的文档说 -
构造一个访问条件,以便仅当资源存在时才执行操作。
但它仍然失败,找不到 404。
知道我想要实现的目标是否可能以及我可能做错了什么?
解决方案
查看该操作的文档:https ://docs.microsoft.com/en-us/rest/api/storageservices/get-blob-properties 。
它基本上是对 blob 的 HEAD 请求,并且没有提到标头的 If-Match 等。
所以我认为最好的方法就是调用 FetchAttributesAsync。如果这导致 404,则该 blob 不存在。它只执行 1 个 HTTP 请求。
推荐阅读
- powershell - 如何使用 xml 内容作为模式在 PowerShell 中获取文件?
- sql-server - SSIS/visual studio-使用派生列转换来计算不同的值并按两个变量排序?
- vue.js - 如何从 Nuxt.js 将 json 数据加载到存储中?
- jasmine - 如何匹配传递给 toHaveBeenCalledWith 的部分嵌套属性?
- laravel - 如何修复消息:“SQLSTATE [42000]:语法错误或访问冲突:1203 错误
- c++ - 是否可以在 C++ 中创建类型声明数组?
- scala - 将 SPARK 数据帧插入 HIVE 管理的酸表不工作,HDP 3.0
- c - 如何读取数据并用 C 语言显示?
- vscode-settings - VS 代码建议框禁用
- pandas - 如何从 pandas 中的列表列表中获取 coumn