Я создаю сайт, на котором зарегистрированные пользователи могут загружать файлы. Эти файлы затем передаются через Apache. Только те пользователи, которые вошли в систему, должны иметь доступ к этим файлам.
Я прочитал эту страницу, но кажется, что людям приходилось дважды входить в систему для доступа к сайту и медиа, каждый раз используя другой тип окна входа.
Есть ли способ обойти это или есть какой-то другой способ ограничить доступ к статическим средам, обслуживаемым Apache, используя базу данных аутентификации Django?
Я использую mod_python.
EDIT. Как я решил это после прочтения ответа Ван Гейла и this:
- Переключился на WSGI.
- Установлен mod_xsendfile
- Переместил все общедоступные медиафайлы в подпапку в /media/public
- Добавлен доступ к общей папке с использованием Alias /media/public/var/www.../media/public
- Добавлен WSGIScriptAlias /media/protected//var/www.../apache/django.wsgi(тот же обработчик, что и для остальной части сайта).
- Добавлен XSendFile On и XSendFileAllowAbove On
- В приложение Django добавлен urlconf для /media/protected, который в основном использует здесь, только измененный для моей системы аутентификации. Он обрабатывает URL-адреса, такие как /media/protected/GROUP _ID/file, чтобы только члены группы могли загружать файлы.