2012-03-04 34 views
0

我很确定答案,但我希望有人确认。gzip + chunked:解压缩之前必须等待整个文件被下载吗?

当在HTTP头中使用gzip时,没有办法只解压缩一部分文件。 我必须先下载整个文件才能够解压缩以获取数据。

对不对?

例如,如果我得到的第一个100个字节有这样的一些代码:

myfile.read(100) 

我就不能在这一点上解压缩。

谢谢。

回答

3

您可以立即开始解压缩gzip流,无论您目前拥有多少数据。您将能够提取迄今为止可用的压缩数据中表示的所有未压缩字节。

您必须始终从头开始解压缩。所以你不能做的就是在gzip流的中间开始解压缩。如果你想访问中间的数据,你需要解压所有的数据到这一点。

+0

好的,谢谢。我最终使用了Requests,而且看起来它正确地处理了它,所以当我使用urllib2时,我可能会犯一些错误。 – Michael 2012-03-10 21:07:24

1

错了。 GZIP允许流式传输。您可能会将格式与ZIP归档格式混淆。

+0

zip格式也允许流式传输。 – 2012-04-02 17:37:43