Azure Blob存储内容长度

时间:2016-05-04 19:13:08

标签: azure curl azure-storage-blobs

执行字节范围请求时,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

1 个答案:

答案 0 :(得分:0)

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

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