записать загруженные файлы на диск - PullRequest
0 голосов
/ 03 сентября 2011

посмотрите на эту страницу web.py: http://webpy.org/cookbook/storeupload/ обратите внимание на то, как записать файл на диск.

Текущая ситуация: Я запустил сервер в virtualbox с 256 Мб памяти и 512 свопами. Просто, когда я загружаю файл размером более 200 МБ, я получаю сообщение об ошибке («страница временно недоступна»).

Я думаю, что функция записи файла python считывает весь файл в память, а затем падает из-за нехватки памяти.

Я прав? Если да, то есть какое-нибудь решение?

Спасибо, что уделили время.

Ответы [ 2 ]

0 голосов
/ 06 сентября 2011

Старайтесь не читать весь файл в памяти, создайте цикл и передайте файл по 1024 байтам.

0 голосов
/ 04 сентября 2011

Я так понимаю, вы правильно настроили nginx , особенно директиву client_max_body_size.

Я думаю, что вы правы, ваша проблема связана с неправильным использованием памяти: вероятно,исходит из метода read().

Используется без аргумента размера, все содержимое файла будет прочитано и возвращено.Поскольку размер файла почти равен размеру памяти компьютера, программа исчерпывает его и вылетает.

Что вам нужно сделать, это изучить лучшие способы копирования файла в Python .

...