Я пытаюсь загрузить (PUT) файл через шлюз с весенней загрузкой, перенаправляя запрос на внутренний RestController (см. DemoController.java). Я могу прочитать данные, но соединение остается открытым. Маршруты шлюза настраиваются через application.yml.
Демо-код и запросы curl можно найти по адресу: https://github.com/knottnhupfer/spring-boot-reactive-gateway-demo
Запустите приложение весенней загрузки и вызовите:
curl --user user:secret -v http://localhost:8080/api/testing/README.md \
--upload-file README.md
ОБНОВИТЬ:
Тем временем я могу прочитать файл, но соединение на стороне сервера не закрывается. Это нормальное реактивное поведение, и мне нужно активно закрыть соединение? Я понял, что упаковка его с помощью Mono закрывает соединение, но больше не читает данные.
В настоящее время метод RestController выглядит так:
@PutMapping(value = "/{value}/**", consumes = "application/octet-stream")
public Mono<ResponseEntity> putArtifact(ServerHttpRequest request,
@RequestBody ByteArrayResource resource, @PathVariable("value") String value) {
[...]
}
Спасибо заранее
/Дэйвид