【问题标题】:gzip + chunked : must wait the whole file to be downloaded before unzipping?gzip + chunked:解压前必须等待整个文件下载完成吗?
【发布时间】:2012-03-22 11:24:46
【问题描述】:

我很确定答案,但我希望有人能确认一下。

在 HTTP 标头中使用 gzip 时,无法仅解压缩文件的一部分。 我必须先下载整个文件才能解压缩以获取数据。

对吗?

例如,如果我使用这样的代码获取前 100 个字节:

myfile.read(100)

此时我将无法解压缩它。

谢谢。

【问题讨论】:

    标签: http gzip chunked-encoding


    【解决方案1】:

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

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

    【讨论】:

    • 好的,谢谢。我最终使用了 Requests 并且确实它看起来处理它正确,所以当我使用 urllib2 时我可能做错了什么。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2021-11-22
      • 2015-03-14
      • 1970-01-01
      • 2011-04-14
      • 2010-12-26
      • 1970-01-01
      • 2021-02-01
      • 2020-05-26
      • 2023-01-28
      相关资源
      最近更新 更多