Ответ 1
Django будет по умолчанию помещать загруженные файлы в память, если он меньше 2,5 МБ. Все, что больше, будет записано в каталог сервера /tmp
, а затем скопировано в момент завершения передачи. Многие параметры загрузки файлов Django могут быть настроены, подробности доступны в документации. Вы также можете настроить обработку файлов, и вы обязательно захотите это сделать.
Прежде чем мы рассмотрим любые технические ограничения, загрузка таких больших файлов в браузер даст пользователю очень плохой опыт. Нет никакой обратной связи о том, как происходит передача (хотя google chrome показывает статус загрузки в процентах), и нет возможности приостановить или возобновить передачу.
Вероятно, вы также столкнетесь с проблемами на сервере. Помимо чрезвычайно длительного времени, которое будет выполняться каждым потоком при работе с потоковыми данными, у вас есть время, необходимое системе для копирования результирующего файла с /tmp
в нужное место.
Если вы не уверены, что можете предвидеть любые проблемы, которые могут возникнуть у сервера при загрузке, я бы предположил, что это плохая идея. Очень сложно найти какую-либо информацию об этом через google, и, похоже, много хитов, описывающих проблемы с большими загрузками файлов.
В то время как Django технически способен получать загруженные файлы, этот большой, очень плохой пользовательский интерфейс и технические трудности означают, что это не лучший подход. Рассматривали ли вы использование специального программного обеспечения для обработки передачи файлов?