Выбор ответа Junior Выбор хранилища спрашивают часто обновлено

Где хранить пользовательские файлы

Вопрос

Пользователи загружают фото и видео. Как правильно хранить?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Файлы в объектном хранилище (S3), метаданные в БД. Объектное хранилище дёшево, масштабируется по объёму и отлично работает с CDN, а в БД лежат только метаданные.

Варианты ответа

  1. Файлы в объектном хранилище (S3), метаданные в БДправильный ответ
  2. Файлы в колонке bytea в PostgreSQL рядом с метаданными
  3. На локальном диске каждого сервера приложения
  4. В Redis, чтобы отдавать файлы быстрее с диска

Разбор

Объектное хранилище дёшево, масштабируется по объёму и отлично работает с CDN, а в БД лежат только метаданные. Бинарные данные в PostgreSQL раздувают БД, бэкапы и репликацию. Локальный диск ломает stateless: файл есть только на одном сервере. Redis держит всё в памяти, хранить там гигабайты видео дорого и рискованно.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме