Согласно документам , класс UploadedFile должен иметь метод chunks()
, который возвращает генератор. Размер чанка настраивается (по умолчанию 2,5 МБ). Таким образом, вы можете сделать что-то подобное (скопировано из документации):
destination = open('some/file/name.txt', 'wb+')
for chunk in f.chunks():
destination.write(chunk)
destination.close()
Это будет считывать один блок за другим в память и записывать его в файл. (Таким образом, в памяти только один кусок). Возможно, вы захотите изменить путь open () на том NFS, тогда каждый вызов write () будет отправлять только текущий кусок в NFS. (NFS экспортирует все файловые операции, такие как открытие / запись / чтение / поиск / закрытие как RPC). Самба работает аналогично.
Кроме того, вы также можете реализовать такой механизм самостоятельно, запустив на медиасервере другую службу, которая предлагает метод добавления фрагмента в файл. (В любом случае, по моему мнению, лучше использовать NFS или Samba).