Загрузка больших файлов Django хранилищ на AWS S3 - PullRequest
0 голосов
/ 20 февраля 2020

Я новый Django, и у меня есть проект, который должен загружать большие файлы (размеры от 5G +).

Я использую:

  • django - хранилища
  • Amazon S3
  • Django 3.0.2
  • Python 3.7.6
  • JQuery 3.1

В документации говорится, что когда размер файла превышает 2,5 МБ, он переходит в TemporaryFileUploadHander, что означает, что он сначала идет в каталог / tmp, а когда загрузка завершена, он перемещает файл в Media Root (что в в моем случае это Amazon S3)

Теперь требуется потоковая загрузка файла в Amazon S3. Например: 20Gb файл должен быть выгружен в потоке (понемногу) в Amazon S3. Как я могу реализовать это требование, чтобы загрузить файл напрямую в Amazon S3 напрямую, не имея его сначала в каталоге / tmp.

Пожалуйста, дайте мне немного света.

1 Ответ

0 голосов
/ 20 февраля 2020

Потоковая передача файла из веб-клиента на Django, а затем на S3 невозможна. Лучшее решение - разбить файлы на куски со стороны клиента JS и затем загрузить их один за другим. Пример кода: здесь .

Это решение все же сохранит файлы меньшего размера на диск.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...