Rest Tornado服务器不接收大文件

Rest Tornado服务器不接收大文件,rest,python-3.x,tornado,Rest,Python 3.x,Tornado,嗨,我正在尝试实现一个Tornado服务器,目标是将非常大的二进制文件(~1GB)接收到帖子正文中。下面的代码适用于小文件,但如果我尝试发送大文件(~100MB),则不起作用 你知道有什么解决方案吗?我没有一个真正的实现作为答案,但有一两句话希望能指出正确的方向 首先,有一个100MB的上传限制,可以通过设置 self.request.connection.set_max_body_size(size) 在请求处理程序的初始化过程中。() 问题是tornado处理内存中的所有文件上传(HTT

嗨,我正在尝试实现一个Tornado服务器,目标是将非常大的二进制文件(~1GB)接收到帖子正文中。下面的代码适用于小文件,但如果我尝试发送大文件(~100MB),则不起作用


你知道有什么解决方案吗?

我没有一个真正的实现作为答案,但有一两句话希望能指出正确的方向

首先,有一个100MB的上传限制,可以通过设置

self.request.connection.set_max_body_size(size) 
在请求处理程序的初始化过程中。()

问题是tornado处理内存中的所有文件上传(HTTP不是处理大型文件上传的非常可靠的协议) 这是2014年TornadowWeb团队的一名成员的话()

。。。您可以使用max\u buffer\u size参数调整此限制 HTTPServer构造函数,尽管我认为这不是一个好主意 将其设置为大于100MB

Tornado目前不支持非常大的文件上传。更好 支持即将到来(#1021),nginx上传模块是一个流行的模块 同时,解决办法。但是,我建议不要使用1GB+ 在任何情况下,都可以在一个HTTP POST中上载,因为HTTP本身并不支持上载 支持恢复部分完成的上载(在 除了上述错误问题之外)。考虑多步 上传过程,如Dropbox的分块上传和提交分块上传 ()

如上所述,我建议执行以下操作之一:

  • 如果NGNIX可以处理并将请求路由到tornado=>look 在NGNIX上传模块()上
  • 如果必须是普通龙卷风解决方案,请使用 tornado.web.stream\u请求\u tornado 4附带的尸体。这 将上载的文件流式传输到磁盘,而不是尝试首先获取 他们都在记忆里。(及)

    • 我没有一个真正的实现作为答案,但有一两句话希望能指出正确的方向

      首先,有一个100MB的上传限制,可以通过设置

      self.request.connection.set_max_body_size(size) 
      
      在请求处理程序的初始化过程中。()

      问题是tornado处理内存中的所有文件上传(HTTP不是处理大型文件上传的非常可靠的协议) 这是2014年TornadowWeb团队的一名成员的话()

      。。。您可以使用max\u buffer\u size参数调整此限制 HTTPServer构造函数,尽管我认为这不是一个好主意 将其设置为大于100MB

      Tornado目前不支持非常大的文件上传。更好 支持即将到来(#1021),nginx上传模块是一个流行的模块 同时,解决办法。但是,我建议不要使用1GB+ 在任何情况下,都可以在一个HTTP POST中上载,因为HTTP本身并不支持上载 支持恢复部分完成的上载(在 除了上述错误问题之外)。考虑多步 上传过程,如Dropbox的分块上传和提交分块上传 ()

      如上所述,我建议执行以下操作之一:

      • 如果NGNIX可以处理并将请求路由到tornado=>look 在NGNIX上传模块()上
      • 如果必须是普通龙卷风解决方案,请使用 tornado.web.stream\u请求\u tornado 4附带的尸体。这 将上载的文件流式传输到磁盘,而不是尝试首先获取 他们都在记忆里。(及)