Понимание того, как работает обработка данных в производстве

Я не очень понимаю, как работает база данных при использовании в продакшене. Мой стек:

  • Джанго
  • Героку
  • AWS S3
  • PostgresSQL на Heroku

Пользователи могут генерировать некоторые изображения в моем приложении. Изображения сохраняются в AWS S3, и в некоторых функциях я хочу получить последнее сгенерированное изображение.

Ниже приведена моя модель, в которой сохраняются изображения.

models.py:

class imgUploadModel(models.Model):
    auto_increment_id = models.AutoField(primary_key=True, default=True)
    image = models.ImageField(null=True, blank=True, upload_to="images/")

А вот вид, где изображения сделаны заново и обработаны в некоторых функциях.

view.py:

imgname = imgUploadModel.objects.all().last().image

Как вы можете видеть, я использую .last(), чтобы перейти к последним изображениям, которые были сгенерированы. Теперь к моим вопросам:

В производстве может быть такое, что один пользователь видит изображения другого пользователя? Или как Dynos (из heroku) разделяет сессии? Поскольку AWS S3 bucket - это просто хранилище памяти без разделения по пользователям, я предполагаю, что один пользователь может видеть изображения других пользователей. Особенно тогда, когда пользователь A создает Img, а пользователь B нажимает на "последнее изображение".

Если это так, то как я могу создать Dynos или Buckets или что-то еще, чтобы предотвратить такое поведение. Я просто не очень понимаю это с логической точки зрения.

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