Django - Разрешения при загрузке файлов
Я пытаюсь создать приложение для обмена файлами, используя Django REST Framework в бэкенде. Для загрузки файлов у меня есть следующее поле в моих моделях:
user_file = models.FileField()
Однако, когда пользователь загружает файл, этот файл хранится в каталоге проекта DRF, и если я укажу путь к этому файлу в браузере, каждый пользователь сможет получить к нему доступ. Как я могу предотвратить это? Я думал о сервере Apache HHTPd, где для каждого пользователя будет своя папка, и когда пользователь попытается получить доступ к файлу, который был загружен не им, бэкенд проведет проверку и не разрешит его, но я не знаю, решит ли это проблему?
Как я могу это сделать?
Спасибо
Так в вашем
user_file = models.FileField()
укажите ваш каталог upload_to. вы можете задать этот каталог идентификатором пользователя (например).
Таким образом, у каждого пользователя будет своя директория, и все изображения и файлы будут находиться в этой директории.
Теперь в случае доступа к файлам. прочитайте url.
например: localhost.8000/1/file1.jpg
Это 1 - userId и имя папки, значение upload_to, указанное в models.
если это значение равно != userId (ЗАПИСАТЬ ЭТУ ЧЕКУ В ВИДЫ), вернуть сообщение об ошибке, иначе вернуть файл.