Выбор ответа Junior Выбор хранилища спрашивают часто обновлено
Где хранить пользовательские файлы
Вопрос
Пользователи загружают фото и видео. Как правильно хранить?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Файлы в объектном хранилище (S3), метаданные в БД. Объектное хранилище дёшево, масштабируется по объёму и отлично работает с CDN, а в БД лежат только метаданные.
Варианты ответа
- Файлы в объектном хранилище (S3), метаданные в БДправильный ответ
- Файлы в колонке bytea в PostgreSQL рядом с метаданными
- На локальном диске каждого сервера приложения
- В Redis, чтобы отдавать файлы быстрее с диска
Разбор
Объектное хранилище дёшево, масштабируется по объёму и отлично работает с CDN, а в БД лежат только метаданные. Бинарные данные в PostgreSQL раздувают БД, бэкапы и репликацию. Локальный диск ломает stateless: файл есть только на одном сервере. Redis держит всё в памяти, хранить там гигабайты видео дорого и рискованно.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.