有没有办法在龙卷风中设置上传的文件大小限制?

时间:2012-10-05 12:43:28

标签: http file-upload limit tornado filesize

我正在使用tornado来制作图像处理RESTful服务,该服务接受通过一般HTTP方式上传的图像,例如multipart/form-data。然后,我使用self.request.files在处理程序中访问它们。

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

3 个答案:

答案 0 :(得分:6)

我试过这个,它有效! max_buffer_size默认值为100 M.

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()

答案 1 :(得分:3)

您可以在创建服务器时传递max_buffer_size参数。例如,允许160MB上传“

HTTPServer(app, max_buffer_size=167772160)

答案 2 :(得分:2)

您必须在Web服务器上进行配置。例如,使用nginx:

client_max_body_size 50M;

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