2017-10-19 66 views
0

我一直在試圖使用郵遞員的圖像上傳到我的blob容器文件夾,下面是截圖 postman screenshot如何使用郵遞員到Azure Blob存儲

下面是Authorization of Azure Storage service REST API正在使用生成的簽名鏈接上傳圖片和正在附加身體的文件名文件字段在身體。

var key = "[Storage account key]"; 
var strTime = (new Date()).toUTCString(); 
var strToSign = 'PUT\n\nimage/jpeg; charset=UTF-8\n\nx-ms-date:' + strTime + '\nx-ms-meta-m1:v1\nx-ms-meta-m2:v2\n/colony7/folder-customer-profilepic/Home - explorar.jpg'; 
var secret = CryptoJS.enc.Base64.parse(key); 
var hash = CryptoJS.HmacSHA256(strToSign, secret); 
var hashInBase64 = CryptoJS.enc.Base64.stringify(hash); 
var auth = "SharedKey colony7:"+hashInBase64; 

我已經使用上面的代碼這些https://docs.microsoft.com/en-us/rest/api/storageservices/put-blockhttps://docs.microsoft.com/en-us/rest/api/storageservices/authentication-for-the-azure-storage-services 引用。

我也打開了cors。請分享解決方案,我將如何上傳一個JPG或PNG圖像到我的BLOB使用郵遞員。

在此先感謝

+0

沒有直接回答你的問題,但你嘗試過Azure存儲資源管理器? https://azure.microsoft.com/en-ca/features/storage-explorer/ – CSharpRocks

+0

你爲什麼要與S3標記呢? –

回答

2

如果我們想上傳到Azure存儲的圖像,請試試看使用Put blob API Put block API。

並嘗試使用以下strToSign。

"PUT\n\n\n{Content-Length}\n\n{Content-Type}\n\n\n\n\n\n\nx-ms-blob-type:BlockBlob\nx-ms-date:{date}\nx-ms-version:2015-12-11\n/accountname/container/blobname" 

我測試它在我身邊,它在網站上正常工作。

頭:

enter image description here

身體:

enter image description here

注:我們可以從文件中獲取大小的Content-Length。

enter image description here

+0

有沒有一種方法可以在不使用內容長度標題的情況下上傳,因爲它受到限制? –

+0

我如何通過Ajax請求天青,當我試圖把它在發送數據的0bytes數據發送二進制PNG文件 –

+0

'有沒有辦法可以在不使用內容長度標題,因爲它限於'據載[把一滴API](https://docs.microsoft.com/en-us/rest/api/storageservices/put-blob),需要'內容Length'報頭。 –

1

不是一個真正的回答你的問題,但我看到了一些問題,可能會導致你面臨這樣的問題。我注意到的一些問題是:

  1. 請求URL不包含您要上傳的文件的名稱。您的請求網址應該是https://colony7.blob.core.windows.net/folder-customer-profilepic/Home - explorar.jpg
  2. 內容類型請求標頭髮送爲image/jpg。但是,在您的stringToSign中,它設置爲image/jpeg; charset=UTF-8。他們兩人應該完全匹配。
  3. stringToSign中缺少內容長度標題。
  4. 根據這裏的文檔,您的stringToSign對應於SharedKeyLite然而,在創建授權標頭時,您使用的是SharedKey
  5. 您的CanonicalizedHeaders不包括x-ms-version
  6. 如果您打算使用SharedKey,那麼您的stringToSign應構造不同。請參閱您分享的文檔鏈接瞭解更多詳細信息。

請修正這些錯誤,並與最新截圖/值來更新你的問題。