@VovaSarp

БД для чата на MongoDB — где хранить картинки и иные файлы?

Пишу чат, в качестве БД используется MongoDB.
Сущность сообщения помимо текста может содержать картинки и иные типы файлов.
Каким образом лучше хранить файлы? Хранить в БД только ссылки на файлы, а сами файлы на отдельно файловом сервере? Или хранить файлы, используя GridFS?
  • Вопрос задан
  • 3227 просмотров
Решения вопроса 3
@RidgeA
Файлы лучше хранить в файловой системе. Ощутимый бонус от хранения файла в ФС - можно отдавать напрямую веб-сервером (nginx, apach, etc), не надо для этого куда-то лезть.
Если уж не помещается или нужны какие-то особые фишки - тогда можно и GridFS или другие инструменты.
Ответ написан
Комментировать
@MoonMaster
Программист и этим все сказано
Лично бы я не стал хранить в базе картинки. Заливал бы на сервер или на облачный хостинг, а в БД хранил только ссылку (путь) а потом подгружал.
Ответ написан
Комментировать
@lega
Если картинки/файлы не большие, то можно и в самом сообщении - одним запросом будет получены и сообщения и файлы, если крупные - то выносить в gridfs/файлы (например как в slack).
Если файлы должны отдаваться только авторизованым (имеющим права), то хранение на диске особо преимуществ не даст (т.к. при раздаче веб сервером, он по прямой ссылке отдаст файлы кому угодно).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы