Azure Blob存储区内容长度



azure blob存储区在执行字节范围请求时似乎错误地设置了内容长度。以前的版本不支持开放式请求,所以我认为通过升级到最新版本,我的问题就会得到解决(2015-04-05)。

在这里,我对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

range请求似乎得到了正确的处理,如中所示,返回的有效负载具有预期的大小,但是,请将标头与从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

我刚刚在我的机器上使用cUrl尝试了相同的命令,如果我理解正确,当你使用-I选项执行cUrl命令时,你实际上是在发出HEAD请求,而不是GET请求。本质上,您的命令是进行Get Blob PropertiesRESTneneneba API调用,该调用不返回数据。

因此,在Azure的情况下,响应是正确的,因为Content-Length响应标头应该告诉您blob的大小。如果您想查看返回的大小,则需要使用-G(Get)参数发出cUrl请求。然后您将看到只返回了255个字节。

最新更新