gpt4 book ai didi

python - 为什么 CherryPy 静态文件下载这么慢?

转载 作者:太空宇宙 更新时间:2023-11-03 11:33:30 25 4
gpt4 key购买 nike

如果我在 CherryPy 中挂载静态目录,如下所示:

wwwroot_config = { '/': 
{ 'tools.staticdir.on': True,
'tools.staticdir.dir': '/path/to/dir' } }

cherrypy.tree.mount(root, '/', config = wwwroot_config)

从该目录下载文件的速度非常慢。

但是,如果我创建自己的 WSGI 应用...

self.wsgi_server = wsgiserver.CherryPyWSGIServer((self.bindaddress, self.port), self.download_file, numthreads = 1)

self.download_file 基本上包含:

return serve_file(theFile, "application/x-download", "attachment", os.path.basename(theFile), debug = True)

我的速度提高了 4-5 倍。

但是,这种方式并不灵活,因为 serve_file 添加到请求的 header (例如范围 header 和内容长度)不会在响应中返回 - 我必须自己做。

我能做些什么来让第一种方式更快吗?

最佳答案

我以前遇到过同样的问题,但我记得只是在 Windows 机器上。你在 Windows 上运行 CherryPy 吗? CherryPy 3.5.0 中似乎存在一个错误,它会为静态文件返回错误的 Content-Length header ,这会导致浏览器闲置等待更多不存在的字节。

我没有详细研究这个问题,但您可能想检查服务器发送的 Content-Length header ,看看它是否与静态文件的实际大小相符。临时解决方法可能是在“before_handler” Hook 中手动设置(或删除)Content-Length header 。

关于python - 为什么 CherryPy 静态文件下载这么慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12081193/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com