azure blob存儲似乎在執行字節範圍請求時錯誤地設置了內容長度。以前的版本不支持開放式請求,所以我認爲通過加入最新版本,我的問題將得到解決(2015-04-05)。Azure Blob存儲內容長度
在這裏,我已經對Azure blob中的文件執行GET請求並打印出標題。我期望內容長度仍然是剩餘255個字節,而是我找到整個文件大小(15601108255)
(server-1)➜ server-1 git:(faster_calls) ✗ curl -I http://ga4ghstore.blob.core.windows.net/testing/HG00096.mapped.ILLUMINA.bwa.GBR.low_coverage.20120522.bam --header "x-ms-version: 2015-04-05" --range 15601108000- HTTP/1.1 200 OK Content-Length: 15601108255 Content-Type: application/octet-stream Content-MD5: M26lWRO8Jhtyh1vSWXUwRg== Last-Modified: Tue, 26 Apr 2016 18:30:11 GMT Accept-Ranges: bytes ETag: "0x8D36E00CD845EC7" Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 x-ms-request-id: 2bf052dc-0001-013d-256d-a5a7a7000000 x-ms-version: 2015-04-05 x-ms-write-protection: false x-ms-lease-status: unlocked x-ms-lease-state: available x-ms-blob-type: BlockBlob Date: Tue, 03 May 2016 18:55:49 GMT
範圍請求表現爲正常處理,因爲在中,返回的有效載荷是但是,預期的大小會將標頭與Amazon爲同一文件返回的內容進行比較。 「內容長度」標題是預期的「255」。
(server-1)➜ server-1 git:(faster_calls) ✗ curl -I --range 15601108000- http://s3.amazonaws.com/1000genomes/phase3/data/HG00096/alignment/HG00096.mapped.ILLUMINA.bwa.GBR.low_coverage.20120522.bam
HTTP/1.1 206 Partial Content x-amz-id-2: w6IO4ezWj2BBTkHA09D9gNRZgkmAQJ8khqc6O9t+Xr+xHmZKvwVTNd0vLCpaVcKoVl/2jZUskug= x-amz-request-id: CE8F86CD94173F51 Date: Tue, 03 May 2016 18:59:22 GMT x-amz-meta-s3cmd-attrs: uid:1000/gname:ubuntu/uname:ubuntu/gid:1000/mode:33204/mtime:1431500614/atime:1431500346/ctime:1431500614 Last-Modified: Wed, 13 May 2015 06:57:53 GMT ETag: "efd6d57b0f27974f6845f4e67a99c1a6-117" Accept-Ranges: bytes Content-Range: bytes 15601108000-15601108254/15601108255 Content-Type: application/gzip; charset=binary Content-Length: 255 Server: AmazonS3
謝謝Gaurav!這有幫助!看起來亞馬遜和微軟不同地實施HEAD請求。我做了curl -vG並找到了具有正確內容長度的206。 – david4096
儘管如此,我仍然認爲這是一個錯誤:「響應HEAD請求而包含在HTTP頭中的元信息應該與爲響應GET請求而發送的信息相同。」(http://www.w3.org /Protocols/rfc2616/rfc2616-sec9.html) – david4096