Я использую Spring Boot для проекта и пытаюсь загрузить большие файлы, но почему-то это не работает.
У меня есть Spring Boot + Zuul (@EnableZuulProxy), работающий на порту 8080, а затем еще один микросервис (назовем его хранилищем данных), который должен обрабатывать загрузку.
Я отправляю составной запрос к http: // локальный: 8080 / zuul / my / upload / конечная точка, который содержит файл и текстовую строку.
Когда я загружаю файл размером 100 МБ, все работает нормально. Zuul передает запрос в хранилище данных, и он поступает и сохраняется. Но когда я пытаюсь загрузить файл большего размера (150 МБ), Zuul обрабатывает запрос и передает его в хранилище данных, но затем где-то один из составных параметров удаляется из запроса, а затем ошибка хранилища данных возвращает 400 и говорит: «Требуемая часть запроса». строка "нет".
У меня следующая конфигурация как в микросервисе (zuul, так и в хранилище данных)
spring:
servlet:
multipart:
max-file-size: 1000MB
max-request-size: 1000MB
Кто-нибудь знает, как это решить? Я пробовал добавить CommonsMultipartResolver, но это ничего не изменило.




Вместо servlet следует использовать http.
В моем Zuul application.yml работают следующие свойства:
spring:
http:
multipart:
max-file-size: 1000MB
max-request-size: 1000MB
В Spring boot 2 работают следующие свойства:
spring:
servlet:
multipart:
max-file-size: 1000MB
max-request-size: 1000MB
Здесь объясняются свойства:
{
"name": "spring.http.multipart.max-file-size",
"type": "java.lang.String",
"description": "Max file size. Values can use the suffixes \"MB\" or \"KB\" to indicate megabytes or\n kilobytes respectively.",
"sourceType":
"org.springframework.boot.autoconfigure.web.MultipartProperties",
"defaultValue": "1MB"
},
{
"name": "spring.http.multipart.max-request-size",
"type": "java.lang.String",
"description": "Max request size. Values can use the suffixes \"MB\" or \"KB\" to indicate megabytes or\n kilobytes respectively.",
"sourceType":
"org.springframework.boot.autoconfigure.web.MultipartProperties",
"defaultValue": "10MB"
},
Эти ответы могли бы выиграть от некоторых дополнительных объяснений и, возможно, некоторого переформатирования.
Начиная с Spring-Boot 2.0 spring.http представляет собой замену spring.servlet.
Да, я только что добавил свой ответ;)
какую версию Spring-boot вы используете?