В этом посте мы обсудим, как загрузить изображение в базу данных, а затем загрузить его обратно. Мы будем использовать Spring Boot, Postgres и Postman для тестирования API.

Так что этот пост будет полезен, если вы реализуете какое-либо реальное приложение, в котором вам нужно хранить изображения, а затем отправлять их обратно пользователю по запросу.

Существует несколько способов хранения изображений.

1. Храните изображения в базе данных.

2. Храните изображения в файловой системе

Вышеупомянутые типы мы можем выбрать в зависимости от наших потребностей. Предположим, если нам нужен более безопасный доступ и менее часто используемые изображения, нам следует использовать БД, в противном случае файловая система предпочтительнее, если нам нужен более быстрый доступ, например, для веб-приложений, где изображение используется часто.

Получение образа из БД включает в себя множество шагов, поэтому это создает задержку, в то время как получение из файловой системы сервера является простым.

Узнайте больше о файловой системе и базе данных для большего понимания.

В этом посте я буду использовать базу данных Postgres для хранения изображений.

Обзор

Спецификация API:

  1. /image POST = для сохранения изображения в базу данных.
  2. /image/info/{name} GET = для получения информации о сохраненном изображении
  3. /image/{name} GET = Получить сохраненное изображение.

Процесс развития:

  1. Создайте проект из https://start.spring.io/ с веб-зависимостью и JPA.
  2. Настройте драйвер и свойства базы данных.
  3. Создайте такие пакеты, как сущность, репозиторий, сервис, контроллер, утилита.

Теперь мы запустим наш класс ImageData, который используется для хранения свойств изображения в БД.

Далее будет наш репозиторий, там у нас будет один метод для получения изображений из БД по имени.

public interface ImageDataRepository extends JpaRepository<ImageData, Long> {
    Optional<ImageData> findByName(String name);
}

Теперь мы просто создадим один сервисный класс для бизнес-логики, связанной с хранением и получением данных изображений.

Затем из класса контроллера мы определим наши конечные точки и вызовем методы класса службы.

Теперь после этого мы начнем тестировать наше приложение с помощью Postman.

Итак, в почтальоне для загрузки файла в вызове POST -> выберите данные формы, а затем в раскрывающемся списке -> выберите файл -> загрузите из вашей системы.

Мы можем использовать сжатие и распаковку при сохранении и получении изображений.

Теперь наш пример готов, теперь мы можем использовать эту концепцию в различных приложениях.

Спасибо за прочтение!!