我要问一些我在 Stackoverflow 上找不到的东西。 我正在做一些 Django,我最近发现我可以使用生成器流式传输 HTTP 输出。 页面输出对于正常情况来说是完美的,但是我想使用 GZip 压缩流式传输页面输出。
我试过使用简单的 zlib.compress 函数,但无济于事。该函数生成小型 gzip 文件。
我想在处理数据时将小块数据作为字符串返回。这些 block 应该构成 Gzip 文件的内容。如何做到这一点? 谢谢。
请您参考如下方法:
使用 zlib.compressobj([level]) 和 Compress.compress(string) 和 Compress.flush([mode]) 来完成
import zlib
def compress(chunks):
c = zlib.compressobj()
for chunk in chunks:
yield c.compress(chunk)
yield c.flush(zlib.Z_FINISH)
