我們的應用程序需要上傳大小爲0的blob。 我們使用cURL來調用Azure存儲REST API。 雖然與大小上傳它與HTTP錯誤代碼[400]Azure blob存儲:無法上傳大小爲0的blob
失敗以下錯誤消息,它返回
<?xml version="1.0" encoding="utf-8"?>
<Error>
<Code>InvalidHeaderValue</Code>
<Message>
The value for one of the HTTP headers
is not in the correct format.
RequestId:2b1ec18b-0001-007d-7811-e40725000000
Time:2016-07-22T12:07:28.5435467Z
</Message>
<HeaderName>Content-Length</HeaderName>
<HeaderValue>-1</HeaderValue>
</Error>
通過Wireshark的,我們保證,內容長度的值頭部被適當地發送。
以下是從Wireshark的捕獲的頭
PUT /test/DC70439C-5004-11E6-B4B2-91D87435845D HTTP/1.1
Host: mytest.blob.core.windows.net
Accept: */*
Transfer-Encoding: chunked
x-ms-blob-type:BlockBlob
x-ms-version:2015-02-21
Content-Length:0
x-ms-date:Fri, 22 Jul 2016 12:07:28 GMT
Authorization:SharedKey kanchan:HQQ7a47TPQtEhL0ek6rim64ZKC8NRubgKuq+4Os+Aoo=
Expect: 100-continue
你能幫助普萊舍弄清楚爲什麼Content-Length頭值被設置爲-1?
感謝和問候, 拉胡爾·奈克
以下是字符串簽署用於生成授權報頭 PUT X-MS-團塊型:BlockBlob X-MS-日期: 2016年7月22日星期五12:07:28 GMT x-ms-version:2015-02-21 /test/test/DC70439C-5004-11E 6 B4B2-91D87435845D 由於我們使用的版本2015年2月21日,我們確保存在stringToSign不加Content-Length頭,如果它的長度爲0 –