使用cherrypy压缩流输出

时间:2015-12-30 07:17:30

标签: python ajax gzip cherrypy http-streaming

我正在使用cherrypy作为Web服务器,它能够流式传输某些方法的输出。 服务器使用yield发送数据行,客户端使用onprogress $.ajax方法事件。
但启用cherrypy的“tools.gzip”配置会导致输出不被客户端缓存。实际上,除非服务器方法完全完成,否则不会调用客户端的onprogress事件。似乎cherrypy压缩工具无法在流模式下压缩输出(它只能在完全获取时压缩输出)。
现在我的第一个问题是如何解决这个问题。如果它不可修复,我的第二个问题是如何使用特定方法来缓解樱桃压缩。

1 个答案:

答案 0 :(得分:0)

您必须启用请求的流功能。

设置以下配置:

{'response.stream': True}

gzip工具会检查当前请求,并相应地查找stream和响应。

有关详细信息:http://docs.cherrypy.org/en/latest/advanced.html#streaming-the-response-body