Я создаю сайт, где зарегистрированные пользователи могут загружать файлы. Эти файлы затем обслуживаются через Apache. Только пользователи, вошедшие в систему, должны иметь доступ к этим файлам.
Я прочитал эту страницу , но кажется, что людям придется дважды входить в систему, чтобы получить доступ как к сайту, так и к СМИ, каждый раз используя окно входа другого типа.
Есть ли способ обойти это или есть какой-то другой способ ограничить доступ к статическим носителям, обслуживаемым Apache, используя базу данных аутентификации Django?
Я использую mod_python.
РЕДАКТИРОВАТЬ : Как я решил эту проблему после прочтения ответа Ван Гейла и этого :
- Переключен на WSGI.
- Установлено mod_xsendfile
- Перемещены все общедоступные медиафайлы в подпапку в / media / public
- Добавлен доступ к общей папке с помощью псевдонима / 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, так что только члены GROUP могут загружать файлы.