![](/img/trans.png)
[英]How to set metadata to a createblockblobfrombrowserfile in azure in javascript
[英]Set Azure Metadata on BlockBlob via REST API
我想使用Azure REST API在Azure的Blob上設置一些自定義元數據屬性。 文件上傳正常(也可以通過REST API完成)。 要設置自定義元數據,我按照以下說明進行操作 。 示例URL可以是:
具有以下請求標頭:
x-ms-meta-ologicname: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 Storage Explorer進行調查我看到正確設置了元數據,並且在那里,只是沒有通過C#檢索它。 感謝Gaurav的建議,我已經編輯了我發布的C#代碼示例,現在正在檢索通過REST API設置的元數據。
元數據已存在,但由於尚未獲取而無法看到它。 您可以做的就是更改ListBlobs()
調用。 假設您使用的是最新版本的存儲客戶端庫,則可以執行以下操作:
var blobs = container.ListBlobs(null, true, BlobListingDetails.Metadata).Cast<CloudBlockBlob>();
這將填充元數據以及其他屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.