我仍然在努力Stream a file to the HTTP response in Pylons。除了原始问题,我发现我无法返回Content-Length标头,因此对于大文件,客户端无法估计下载需要多长时间。我试过了
response.content_length = 12345
我试过
response.headers['Content-Length'] = 12345
在这两种情况下,HTTP响应(在Fiddler中查看)根本不包含Content-Length标头。如何让Pylons返回此标题?
(哦,如果你有任何关于让它流式传输文件的想法,请回复原始问题 - 我在那里完全没有想法。)
编辑,但不是通用解决方案,用于提供静态文件FileApp
allows sending the Content-Length header。对于动态内容,似乎 Alex Martelli 的答案是唯一的选择。
答案 0 :(得分:1)
有一些中间件代码here可确保所有响应在缺少时获得内容长度标头。你可以调整它,以便在响应中设置一些其他标题(比如'X-The-Content-Length'),如果后者缺少,中间件会使用它来制作内容长度。我认为整个事情是我认为是一个塔架虫(它对内容长度的傲慢态度!)的解决方法,但显然塔架作者在这个分数上不同意我的意见,所以至少有它的解决办法很好! - )< / p>
答案 1 :(得分:0)
尝试:
response.headerlist.append((str("Content-Length"), str(" 123456")))