Понимание того, как работает обработка данных в производстве
Я не очень понимаю, как работает база данных при использовании в продакшене. Мой стек:
- Джанго
- Героку
- 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 или что-то еще, чтобы предотвратить такое поведение. Я просто не очень понимаю это с логической точки зрения.