Django: загрузка больших файлов - пользовательская обработка с помощью mod_wsgi - PullRequest
2 голосов
/ 26 ноября 2009

Я делаю выгрузку файлов, используя механизм выгрузки файлов Django с пользовательским обработчиком (путем подкласса django.core.files.uploadhandler.FileUploadHandler), который выполняет некоторую дополнительную обработку в receive_data_chunk(self, raw_data, start) функция.

Мне было любопытно, когда на самом деле вызывается обработчик (т.е. после того, как файл был полностью загружен сервером или когда он поступил в сокет)?

Из моих тестов я узнал, что у вас есть доступ к данным, когда они поступают в сокет, но я хотел бы, чтобы кто-то подтвердил это. Я немного озадачен этим, потому что я думал, что mod_wsgi был content generator в Apache, поэтому вызывается после input filters, который предварительно обрабатывает запрос клиента.

PS: я использую Apache + mod_wsgi + Django.

1 Ответ

0 голосов
/ 26 ноября 2009

В Apache фильтры ввода применяются к содержимому ввода только тогда, когда обработчик запроса читает содержимое ввода. Таким образом, никакая предварительная обработка не выполняется входными фильтрами, она выполняется в потоке с обработчиком запросов, потребляющим входной контент.

...