Интересует концептуальный вопрос. Как правильно осуществляются такие вещи как загрузка аватара при регистрации или любых других фото.
С одной стороны необходимые сайту картинки (логотипы и пр.) можно хранить прямо в коде фронта. Но не позволять же юзерам сохранять туда свои изображения))
Есть версия что изображения должны храниться даже не в БД, что бы не раздувать в БД, а сохраняться на строннем сервере. БД при этом хранит только ссылку.
Верно ли это? Если да то что это за сервер и как в целом такое делается?
Игорь Евгеньевич
41 уровень
Загрузка фото на сайт.
Комментарии (7)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
wan-derer.ru
4 ноября 2022, 19:20
Рекомендую посмотреть (и поделать примеры) этот плей-лист. Таки разобраны многие подходы в разработке вэб-приложения и есть ответы на многие вопросы.
+2
Денис Java Developer
4 ноября 2022, 15:47
Из того с чем доводилось работать мне - изображения действительно хранились на отдельном хранилище, в БД были только необходимые линки. Для больших объемов данных и скорости доступа еще используются и несколько реплик хранилища, чтобы не запрашивать из Амстердама сервер в Австралии, а взять что-то поближе, но это не твой случай.
Что касается регистрации и пр, думаю тут логика примерно такая же - сам файл картинки сохраняется в хранилище, получает ссылку и она привязывается к профилю. Соответственно при рендере страницы твой браузер дергает файл по ссылке и происходит магия.
Что до устройства сервера не подскажу, но в вакууме это просто жесткий диск и что-то что присваивает файлам на нем ссылки прямого доступа, с виду для этих целей даже апач подойдёт, но можно написать и что-то свое на той же Java.
А вот как это делать правильно - это надо гуглить как устроены CDNы
+3
Justinian Judge в Mega City One Master
4 ноября 2022, 15:57
+
0
Сергеев ВикторMaster
5 ноября 2022, 20:22
в плане реализации как вариант s3 хранилище, есть оперсорс проекты реализующие s3 api
Как пример https://min.io/
+1
2DaMoon
4 ноября 2022, 11:14
Самый простой и популярный вариант - сжимать аватарки до определенного размера (условно 64x64 pi) и хранить в бд. А для файлов (фото, видео, пдфки) использовать облачное хранилище.
0
Igor Petrashevsky
4 ноября 2022, 23:57
в бд хранить слишком ресурсоемко. папка картинок или выделенный сервер, если траффик большой
0
Alex
4 ноября 2022, 09:14
Не по теме:
Блин, капец, интересные посты создаешь, типа полезные, я как раз спринг учу, и планирую, все это тоже попробовать... (придумать логику, написать фронт, сделать бэк).
Тупа мотивация!)))
Ты уже начал разбираться с фронтом? в плане используешь Angular или React.
Посоветуй, куда дальше копать после hibernate и spring(aop,mvc,boot,security)...
0