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

baz*_*lic 7 file-upload http tornado filesize limit

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

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

Wei*_*gTu 9

我已经尝试过了,它有效!max_buffer_size默认值为100M。

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()
Run Code Online (Sandbox Code Playgroud)


Sjo*_*erd 2

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

client_max_body_size 50M;
Run Code Online (Sandbox Code Playgroud)

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

  • 抱歉,我已经编辑了我的问题以包含更有用的信息。 (2认同)