В моем приложении я имею дело с загрузкой действительно больших файлов изображений. Они будут храниться на удаленном сервере, поэтому из того, что я смог узнать, мне нужно написать какую-то пользовательскую систему хранения (возможно, с использованием модуля p10 python). Из-за размера я бы хотел отправить файлы непосредственно на медиа-сервер, не сохраняя их в памяти (что позволяет «плакат»). Но все загруженные файлы обрабатываются классом UploadHandler, что заставляет файлы храниться локально каким-то образом (файл, темп или в памяти). Итак, как я могу обойти это?Отправлять файлы из формы непосредственно на удаленный сервер
ответ
В соответствии с docs класс 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 экспортирует все операции с файлами, такие как open/write/read/seek/close, как RPC). Самба работает аналогично.
В качестве альтернативы вы также можете реализовать такой механизм самостоятельно, выполнив другую службу на медиасервере, который предлагает метод добавления фрагмента в файл. (Во всяком случае, использование NFS или Samba было бы лучшим выбором, на мой взгляд).
Возможно, вы найдете xsendfile(snippet) или аналогичные расширения веб-серверов. Но тогда вы должны инициировать соединение с запрашивающей машины.
это не вариант, к сожалению – mizou
- 1. Загрузить файлы на удаленный сервер в sailsJS
- 2. Отправлять файлы с устройства android на сервер?
- 3. Локальные файлы или удаленный сервер
- 4. Загрузка на удаленный сервер
- 5. XCOPY на удаленный сервер
- 6. FTP на удаленный сервер
- 7. Приложение для Android не может отправлять данные на удаленный сервер
- 8. Как экспортировать файлы с SVN на удаленный FTP-сервер
- 9. отправлять файлы с Windows-машины на удаленный сервер linux java-код
- 10. SSH непосредственно на сервер MySQL
- 11. отправлять переменные на сервер
- 12. Загрузка файлов на удаленный сервер
- 13. SSH на удаленный сервер
- 14. Загрузка файлов на удаленный сервер
- 15. Запись файла на удаленный сервер
- 16. Отправлять запросы непосредственно на couchDB из NodeJS/Угловое приложение?
- 17. Отправлять файлы через статический IP-адрес от клиентов на сервер
- 18. Как Curl удаленный файл на удаленный сервер
- 19. Скопируйте файлы на удаленный сервер через RDP с помощью сценария
- 20. GIT при нажатии на удаленный сервер исключает папки/файлы
- 21. Автоматически отправлять значения на сервер
- 22. Отправлять InkCanvas непосредственно в IRandomnaccessStream
- 23. Отправка файлов из формы на другой сервер
- 24. Git - синхронизировать и перезаписывать файлы с Bitbucket на удаленный сервер
- 25. Как загрузить сервер Java на удаленный сервер?
- 26. Отправить запрос непосредственно на сервер
- 27. ASP.Net NavigateUrl на удаленный сервер
- 28. В nodejs, как отправлять файлы cookie в запросе на сервер
- 29. Отправлять файлы с сервера vb.NET на сервер C++
- 30. Рекурсивно PUT-файлы на удаленный сервер с использованием FTP
, но все же после отправки этих данных будет запущено хранилище. Или я ошибаюсь? – mizou