NikFaraday
@NikFaraday
Student full-stack Developer

Где хранить логотип веб-сайта?

Есть задача, куда-то разместить сохранить логотип, но нельзя создавать таблицу в БД специально для логотипа , т.к. логотип будет один, новый будет заменять старый и всё. Так же, согласно требованиям, логотип нужно хранить в виде массива байтов в БД, но, повторюсь, нельзя создавать новую таблицу.
Куда мне его сохранить?
  • Вопрос задан
  • 450 просмотров
Решения вопроса 3
mayton2019
@mayton2019
Bigdata Engineer
Веб-сайт - это набор файлов. В том числе и статический контент.
Вот положите туда.

UPD: В связи с вопросами читателей я даю расшифровку термина static content.
В типичном архетипе проекта для Spring Boot WEB этим обзывается фолдер
src/main/resources/static
куда складывают js, css, favicon и прочие одноразовые ресурсы которые относятся
к веб-приложению.

И мне кажется что логотим веб-сайта тоже можно туда положить. Надеюсь что я
был правильно понят и никого не обидел и не задел ничьи чувства.
Ответ написан
NikFaraday
@NikFaraday Автор вопроса
Student full-stack Developer
Ответ оказался достаточно специфический...

Оказывается, логотип нужно хранить в БД в байтовом виде в таблице с ЮЗЕРАМИ, поскольку логотип мало весит и будет постоянно актуален. У меня всё. Спасибо всем, кто предложил руку к решению этой головоломки
Ответ написан
@mletov
Так же, согласно требованиям, логотип нужно хранить в виде массива байтов в БД, но, повторюсь, нельзя создавать новую таблицу.

Взаимоисключающие требования

Как вариант, если в проекте есть таблица, которая хранит файлы в binary, то можно завести в ней признак isLogo и поставить constraint, что логотип может быть только один.

Ну и вообще посмотрите какие таблицы уже есть в проекте, может приткнуть этот файл куда-то можно.

Формальные требования будут выполнены.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
delphinpro
@delphinpro
frontend developer
Возможно у вас уже есть таблица с глобальными настройками для сайта. Вот туда и запихните логотип.
Но, соглашусь, требование странное. Можно так же хранить логотип на диске, можно даже в отдельной папке, и параметр в админке, для выбора/загрузки лого.
Ответ написан
@402d
начинал с бейсика на УКНЦ в 1988

логотип нужно хранить в виде массива байтов в БД,

Очень странное требование.
Тогда вам потребуется еще скрипт, который будет его возвращать как картинку.
Окей, Вы соберете все нужные заголовки ответа для его кеширования. Но вместе с

новый будет заменять старый

вы не можете сказать кешируей его на год, придется обрабатывать etag и modify-since
И то мы имеем ? на каждого уника - промах мимо nginx'a. Запрос в базу данных.
при его постаянной навигации еще раз в час или чаще запрос в базу и уже по короче ответ "Не изменился"

Это вместо поведения из коробки, когда он лежит файлом на сервере.

Теперь положить его в какую ту существующую таблицу.
Добавляется блобовское поле. По хорошему все существующие селекты к ней вместо
select * переписать без звездочки через список нужных в конкретном месте полей, чтобы не нагружать зря базу данных.

Куда ? Ну посмотри может есть таблица настроек в которой на сайт одна строка.
Ответ написан
Комментировать
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
вообще если логически подходить то https://site/img/logo.png
/var/www/html/img/logo.png

Все работает как часы, никаких баз данных.
Почему это не используете?
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы