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 (ЗАПИСАТЬ ЭТУ ЧЕКУ В ВИДЫ), вернуть сообщение об ошибке, иначе вернуть файл.

Вернуться на верх