2013-09-29 12 views
6

Używając nieco zmodyfikowanej wersji tego Tornado upload app na mojej maszynie programistycznej, pojawia się następujący komunikat o błędzie z serwera tornado i pustej strony, gdy próbuję przesłać duże pliki (+ 100MB):"Długość zawartości zbyt długa" podczas przesyłania pliku za pomocą Tornado

[I 130929 07:45:44 HTTPServer: 330] Błędny żądania HTTP z 127.0.0.1: Content-Length zbyt długo

nie ma problemu, przesyłając pliki do ~ 20MB .

więc zastanawiam się, czy jest jakiś konkretny limit przesyłania plików na serwerze Tornado? Czy ma to coś wspólnego z dostępną pamięcią urządzenia? I niezależnie od przyczyny, w jaki sposób mogę przezwyciężyć ten problem?

Odpowiedz

11

Tornado ma konfigurowalne ograniczenie wielkości wysyłania (domyślnie 10 MB). Można zwiększyć limit, przekazując max_buffer_size do konstruktora HTTPServer (lub Application.listen). Jednakże, ponieważ Tornado (wersja 3.1) odczytuje całą treść wysyłania w pojedynczy stały ciąg w pamięci, niebezpiecznie jest uczynić limit zbyt wysokim. Popularną alternatywą jest nginx upload module.

+1

W tornadoweb 4 mamy dekoratora tornado.web.stream_request_body, nginx nie jest już wymagany. – nagylzs

+0

Domyślną wartością jest teraz 100 MB (Tornado w wersji 4.4.1 na dzień publikacji tego komentarza) – gordonc

Powiązane problemy