【发布时间】:2014-10-30 19:53:15
【问题描述】:
我想使用 Azure REST API 在 Azure 上的 Blob 上设置一些自定义元数据属性。 文件的上传工作正常(也通过 REST API 完成)。为了设置我的自定义元数据,我关注了these instructions。示例 URL 可以是:
使用此请求标头:
x-ms-meta-logicalname:20141028_064011.jpg
无论我是通过 jquery ajax 还是通过 Fiddler 运行此 url,我总是得到相同的结果:调用似乎是成功的(我得到 200 状态代码)但是如果那时我检查 blob 元数据(使用 C# 代码)关键未找到且元数据为空。
相反,如果我使用 C# 进行所有操作,我可以根据需要设置和获取我的 blob 上的任何元数据。
示例 C# 代码(现在可以使用):
var blobs = container.ListBlobs(null, true, BlobListingDetails.Metadata).Cast<CloudBlockBlob>();
foreach (var blob in blobs) {
Console.WriteLine(blob.Metadata["logicalname"]);
}
如您所见,我在 url 中输入了共享访问签名,而不是在请求标头中,如说明所示,但我怀疑这是问题所在,因为在上传和其他操作(也在表存储上)时一切正常.
我做错了吗? (显然是的,但是什么?... :))
已解决:
使用 Azure 存储资源管理器进行调查,我看到元数据已正确设置并且存在,只是没有通过 C# 检索。感谢 Gaurav 的建议,我已经编辑了我发布的 C# 代码示例,现在正在检索我通过 REST API 设置的元数据。
【问题讨论】:
-
能分享一下通过C#获取blob元数据的代码吗?
-
使用 C# 示例编辑帖子
标签: javascript rest azure