Как создать url к изображению в базе данных со сроком действия
Я создал модель следующего вида:
class Photo(models.Model):
"""
Photo model with automatically generated Thumbnail by TierPhotoSetting of UserTier
"""
user = models.ForeignKey(User, blank=False, null=False, on_delete=models.CASCADE)
photo = models.ImageField(upload_to='photos', blank=False, null=False)
и теперь я хочу создать новый объект базы данных, который хранит ссылку на фотографию из Photo. Эта ссылка должна иметь время истечения, например, 500 секунд. Как предоставить пользователю url на изображение, которое активно только некоторое время? Заранее спасибо.
есть два способа реализации в зависимости от вашего случая использования,
Если вы хотите сохранить изображение на сервере и запретить доступ к нему через 500 секунд, вы можете вести запись о том, когда оно было создано, и отменить запрос, если разница между временем запроса и временем создания превышает 500 секунд.
если вы хотите полностью удалить изображение, то вам нужно выполнить несколько асинхронных операций, для этого вам нужно запустить экземпляр celery, который будет выполнять асинхронную работу. вы можете запланировать задание на удаление изображения и обновление записи в базе данных на истекшую. для этого вам понадобится celery, пожалуйста, обратитесь к документации для получения более подробной информации.
https://docs.celeryproject.org/en/stable/django/first-steps-with-django.html