Django с aws s3 Ограничение видимости медиафайлов только для владельца
У меня есть модель, которая в основном сохраняет файлы/изображения для каждого конкретного пользователя, и только этот пользователь сможет просмотреть свой файл, другие пользователи не могут просматривать чужие личные файлы/изображения.
def user_id_directory(instance, file):
return f"{instance.id}/{file}"
class PrivateFile(models.Model):
owner = models.ForeignKey(to=UserModel, on_delete=models.CASCADE)
image = models.ImageField(upload_to=user_id_directory)
created = models.DateTimeField(auto_now_add=True)
Я использую s3 для сохранения медиафайлов, но использование s3 оставляет ссылку, доступ к которой может получить любой другой пользователь. Предположим, есть файл FILE1 с идентификатором 1, и я создал API, который возвращает следующую схему JSON.
{
"id": 1,
"user": 1,
"image": "example.aws.com/Media/File/1/image.png?AccessID=...."
"created": "2021-09-09 09:09:09.25555",
}
Если я дам эту ссылку любому, даже неавторизованный пользователь сможет просмотреть этот файл, используя эту ссылку, Как я могу ограничить его только пользователем, который является владельцем файла, только он/она сможет просмотреть его по ссылке.