Как ускорить загрузку Django FileField? - PullRequest
5 голосов
/ 26 февраля 2012

У меня есть FileField, который использует S3BotoBackend от django-хранилищ для загрузки аудиофайлов в Amazon S3.Размер аудиофайлов может достигать 10 МБ, и пользователь может загрузить несколько файлов в одной форме.Время загрузки может быть очень долгим и блокировать.Чтобы ускорить обработку, я подумал о написании пользовательского бэкэнда хранилища, который наследует S3BotoBackend и передает задания в очередь beanstalk перед загрузкой в ​​S3.

Есть ли более простые альтернативы для ускорения работы пользователя?

1 Ответ

2 голосов
/ 27 февраля 2012

Если вы хотите ускорить процесс, вам нужно, чтобы ваш веб-сервер был более вовлечен в обработку загрузок. Вы можете проверить модуль загрузки Nginx для Nginx, хотя многое из этого можно сделать с помощью любого веб-сервера.

Для этого подхода вы настроите представление, которое будет получать запрос после того, как пользователь успешно загрузил файл, что будет подходящим моментом для помещения файла в очередь для загрузки на S3.

Это позволит вам асинхронно получать несколько загрузок от пользователя и асинхронно отправлять файлы на S3, что должно охватывать практически все, что вы можете сделать, чтобы улучшить процесс загрузки файлов.

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