在我的开发机器上使用此Tornado 上传应用程序的略微修改版本,每当我尝试上传大文件 (+100MB) 时,都会从 tornado 服务器收到以下错误和空白页面:
[I 130929 07:45:44 httpserver:330] 来自 127.0.0.1 的 HTTP 请求格式错误:内容长度太长
上传最大 ~20MB 的文件没有问题。
所以我想知道 Tornado 网络服务器中是否有任何特定的文件上传限制?或者它与机器的可用内存有关。不管是什么原因,我该如何克服这个问题?
在我的开发机器上使用此Tornado 上传应用程序的略微修改版本,每当我尝试上传大文件 (+100MB) 时,都会从 tornado 服务器收到以下错误和空白页面:
[I 130929 07:45:44 httpserver:330] 来自 127.0.0.1 的 HTTP 请求格式错误:内容长度太长
上传最大 ~20MB 的文件没有问题。
所以我想知道 Tornado 网络服务器中是否有任何特定的文件上传限制?或者它与机器的可用内存有关。不管是什么原因,我该如何克服这个问题?
Tornado 对上传大小有可配置的限制(默认为 10MB)。您可以通过传递max_buffer_size
给HTTPServer
构造函数(或Application.listen
)来增加限制。但是,由于 Tornado(3.1 版)将整个上传正文读取到内存中的单个连续字符串中,因此将限制设置得太高是很危险的。一种流行的替代方法是nginx 上传模块。