我一直在嘗試使用 Insomnia 將元資料更新到我的 BlockBlob。我已設法使用標頭清除元資料(引數 json 為空):
在此處輸入影像描述
使用 strToSign:
"PUT\n\n\n\n\n\n\n\n\n\n\n\nx-ms-date:Fri, 11 Mar 2022 09:24:07 GMT\nx-ms-version:2021-04-10\n/myaccount/search/file_6444\ncomp:metadata"
但是如果我想更新元資料,在標頭中發送 x-ms-meta-ide:2021(引數 json 為空),它不起作用,它回傳錯誤:AuthenticationErrorDetail The MAC signature found in the HTTP request' XXXXXXXXX' 與任何計算簽名不同。
strToSign 是:
"PUT\n\n\n\n\n\n\n\n\n\n\n\nx-ms-date:Fri, 11 Mar 2022 09:24:07 GMT\nx-ms-version:2021-04-10\nx-ms-meta-ide:2021\n/myaccount/search/file_6444\ncomp:metadata"
為什么它不作業?謝謝
uj5u.com熱心網友回復:
請更改您要簽名的字串:
PUT\n\n\n\n\n\n\n\n\n\n\n\nx-ms-date:Fri, 11 Mar 2022 09:24:07 GMT\nx-ms-meta-ide:2021\nx-ms-version:2021-04-10\n/myaccount/search/file_6444\ncomp:metadata
本質上,問題是標題必須在字串中按字母順序排序才能簽名,因此標題的順序是x-ms-date,x-ms-meta-ide然后x-ms-version.
有關更多詳細資訊,請參閱此鏈接:https ://docs.microsoft.com/en-us/rest/api/storageservices/authorize-with-shared-key#constructing-the-canonicalized-headers-string 。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/443201.html
