gpt4 book ai didi

javascript - 通过 REST API 在 BlockBlob 上设置 Azure 元数据

转载 作者:行者123 更新时间:2023-12-03 11:33:16 29 4
gpt4 key购买 nike

我想使用 Azure REST API 在 Azure 上的 Blob 上设置一些自定义元数据属性。文件上传工作正常(也通过 REST API 完成)。为了设置我的自定义元数据,我遵循 these instructions 。示例 URL 可以是:

(PUT方法) https://myaccount.blob.core.windows.net/ph0wzj1k4dbuwfusyqw38z2jgfk5p56bfnlj5/a5bc77a8d4d34edeb6d3212fc6bbd8a9.jpg?sv=2014-02-14&sr=c&si=BlobContainer&sig=someSignaturecomp=metadata

使用此请求 header :

x-ms-meta-逻辑名称:20141028_064011.jpg

无论我通过 jquery ajax 还是通过 Fiddler 运行此 url,我总是得到相同的结果:调用似乎成功(我得到 200 状态代码),但如果随后我检查 blob 元数据(使用 C# 代码),则 key 未找到且元数据为空。

相反,如果我使用 C# 完成所有操作,我可以根据需要设置和获取 Blob 上的任何元数据。

示例 C# 代码(正在运行):

var blobs = container.ListBlobs(null, true, BlobListingDetails.Metadata).Cast<CloudBlockBlob>();
foreach (var blob in blobs) {
Console.WriteLine(blob.Metadata["logicalname"]);
}

正如您所看到的,我已在网址中输入了我的共享访问签名,而不是按照说明显示在请求 header 中,但我怀疑这是问题所在,因为在上传和其他操作(也在表存储上)一切正常.

我做错了什么吗? (显然是的,但是什么?...:))

已解决:

使用 Azure 存储资源管理器进行调查时,我发现元数据已正确设置并且存在,只是未通过 C# 检索它。感谢 Gaurav 的建议,我已经编辑了发布的 C# 代码示例,现在正在检索我通过 REST API 设置的元数据。

最佳答案

元数据就在那里,但您无法看到它,因为您尚未获取它。您可以做的是更改 ListBlobs() 调用。假设您使用的是最新版本的存储客户端库,您可以执行以下操作:

var blobs = container.ListBlobs(null, true, BlobListingDetails.Metadata).Cast<CloudBlockBlob>();

这将填充元数据以及其他属性。

关于javascript - 通过 REST API 在 BlockBlob 上设置 Azure 元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26651496/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com