2012-03-04 70 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