J'utilise tornade pour faire une image de traitement de service RESTful qui accepte les images téléchargées par HTTP générales comme Il pourrait être qu'un adversaire va essayer de télécharger un énorme fichier pour briser un service. Est-il possible de dire tornade une limite de taille de fichier téléchargé, dépassant quel fichier doit être mis au rebut et de l'état HTTP d'erreur doit être réglé? P> multipart / form-data code>. Je les ai alors l'accès à des gestionnaires en utilisant
self.request.files code>. P>
3 Réponses :
Vous devez configurer ce serveur sur le Web. Par exemple, en utilisant nginx:
client_max_body_size 50M;
La question est de savoir comment configurer cette option pour tornade b>.
Désolé, j'ai modifié ma question pour contenir un peu plus d'informations utiles.
Vous pouvez passer un paramètre max_buffer_size lors de la création du serveur. Par exemple, pour permettre 160 Mo upload "
HTTPServer(app, max_buffer_size=167772160)
Je l'ai essayé, ça marche! max_buffer_size code> valeur par défaut est 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()