У меня есть веб-приложение Django, которое использует каналы и Daphne для связи через веб-сокет. Все мои вещи с веб-сокетом работают без проблем.
Моя проблема связана с тем, что мой сервер также позволяет мне загружать файлы на сервер. Небольшие файлы (даже до 282 МБ) загружаются и работают без проблем.
Однако большие файлы приводят к 500 Internal error - Daphne
и показывают эту трассировку стека:
2018-10-29 12:40:14,009 - ERROR - http_protocol - Traceback (most recent call last):
File "..\venv\lib\site-packages\daphne\http_protocol.py", line 176, in process
"body": self.content.read(),
MemoryError
Полагаю, это говорит мне о том, что у Дафни заканчивается память. Я нашел ссылку здесь: Ограничения на размер загружаемого файла Дафни Джанго , что также помогает подтвердить этот вывод.
Мне нужен ответ, как его решить. Я не запускаю свой проект в Docker, я нахожусь на экземпляре виртуальной машины Linux. Если я увеличу общий объем используемой оперативной памяти на всей виртуальной машине, сможет ли Дафни получить еще?
Есть ли какой-нибудь способ, которым я могу указать дафне, что ей разрешено использовать больше памяти, чем в настоящее время? Этот экземпляр сервера имеет 4 ГБ ОЗУ, а мой файл - всего 675 МБ, поэтому, если он не хранит несколько копий в памяти одновременно, его должно быть достаточно, чтобы уместить этот файл как есть.
Как я могу позволить Дафни успешно принимать большие загрузки файлов?