Http 有没有办法在tornado中设置上传文件的大小限制?

Http 有没有办法在tornado中设置上传文件的大小限制?,http,file-upload,limit,tornado,filesize,Http,File Upload,Limit,Tornado,Filesize,我正在使用它来创建一个图像处理RESTful服务,它接受通过一般HTTP方式上传的图像,比如多部分/表单数据。然后,我使用self.request.files在处理程序中访问它们 可能是一个对手试图上传一个巨大的文件来破坏一个服务。有没有办法告诉tornado一个上传的文件大小限制,超过哪个文件应该被丢弃,并且应该设置错误HTTP状态?您必须在web服务器上配置它。例如,使用nginx: client_max_body_size 50M; 编辑:HttpServer使用的流具有max\u bu

我正在使用它来创建一个图像处理RESTful服务,它接受通过一般HTTP方式上传的图像,比如
多部分/表单数据
。然后,我使用
self.request.files
在处理程序中访问它们


可能是一个对手试图上传一个巨大的文件来破坏一个服务。有没有办法告诉tornado一个上传的文件大小限制,超过哪个文件应该被丢弃,并且应该设置错误HTTP状态?

您必须在web服务器上配置它。例如,使用nginx:

client_max_body_size 50M;

编辑:HttpServer使用的流具有max\u buffer\u size属性。HttpServer将不接受大于此值的上载。它的默认值是100MB。在我看来,当达到此限制时,HttpServer只是关闭连接,而不是发送HTTP响应。

您可以在创建服务器时传递max\u buffer\u size参数。例如,允许160MB上载”


我已经试过了,它很有效!
max\u buffer\u size
默认值为100米

import tornado.httpserver

app = tornado.web.Application([
    (r'/upload/', UploadFileHandler),
])

server = tornado.httpserver.HTTPServer(app, max_buffer_size=10485760000)  # 10G
server.listen(8888)
tornado.ioloop.IOLoop.instance().start()

所以问题是如何为tornado配置此选项。对不起,我已编辑了我的问题,以包含稍微有用的信息。
import tornado.httpserver

app = tornado.web.Application([
    (r'/upload/', UploadFileHandler),
])

server = tornado.httpserver.HTTPServer(app, max_buffer_size=10485760000)  # 10G
server.listen(8888)
tornado.ioloop.IOLoop.instance().start()