执行字节范围请求时,azure blob存储似乎错误地设置了内容长度。以前的版本不支持开放式请求,所以我认为通过升级到最新版本,我的问题将得到解决(2015-04-05)。
这里我已经对azure blob中的文件执行了GET请求并打印出标题。我希望Content-Length是剩余的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从同一文件返回的内容进行比较。 “content-length”标题是预期的“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
答案 0 :(得分:0)
我刚刚在我的机器上使用cUrl尝试了相同的命令,如果我理解正确,当您使用-I
选项执行cUrl命令时,您实际上是在发出HEAD
请求,而不是GET
请求。基本上你的命令正在进行Get Blob Properties
REST API调用,它不会返回数据。
因此,对于Azure,响应是正确的,因为Content-Length
响应标头应该告诉您blob的大小。如果要查看返回的大小,则需要使用-G
(Get)参数发出cUrl请求。然后你会看到只返回255个字节。