Загрузить файлы на Spring Boot и отправить письма с вложениями

135
05 января 2021, 07:20

Вопрос больше по архитектуре.

Нужно написать сервис на спринг буте, который принимает json и одновременно может принимать список файлов-вложений. Из данных в жсон и из файлов собирается емейл, который отправляется получателю. Процесс выглядит так:

  • Принять json на рест эндпоинт (возможно, вместе со списком файлов)
  • Положить все это в очередь (activemq, rabbitmq)
  • Доставать данные из очереди и варить из них емейлы (может быть, с вложениями)

Как лучше принимать данные сервисом, если вложения могут весить по 10-20 мб? Принимать огромный JSON, в котором вложения закодированы в base64, переконвертировать их и сбрасывать на диск? Или каким-то образом вместе с получением JSON получать список MultipartFile?

Покажите, пожалуйста, пример походего сервиса.

Для теста я написал такой эндпоинт:

@PostMapping(value = "/api/test2", consumes = MediaType.ALL_VALUE)
    public void test(@RequestParam("files")List<MultipartFile> files) throws Exception {
        System.out.println(files);
    }

Но при отправке при помощи Insomnia получаю ошибку:

Current request is not a multipart request

В инсомнии создал post-запрос Multipart и выбрал файл на диске.

Что я сделал не так?

READ ALSO
Не удаётся получить длинну VKUsersArray

Не удаётся получить длинну VKUsersArray

VKUsersArray назвал VKFЗнаю, что можно получить значение через VKF

124
Java | Хранение экземпляра класса

Java | Хранение экземпляра класса

Делаю бота для Telegram на JavaПри разработке столкнулся с тем, что система хранит где-то объект и отправляет его параметры несмотря на то, что объект...

144
Почему возникает ошибка OutOfMemoryError?

Почему возникает ошибка OutOfMemoryError?

Вводится из консоли дата (тип String)При посимвольном сравнении, на второй вводимой дате вылетает ошибка java

113
Алгоритм вычленения &gt;3 &lt;6 значного числа

Алгоритм вычленения >3 <6 значного числа

Требуется алгоритм который бы вытащил >3 <6 значное число из строки

92