Потоковая загрузка 'POST' в Spring WebClient - PullRequest
0 голосов
/ 29 апреля 2020

Я загружаю потоки (необработанных байтов) данных, используя сообщения HTTP, используя WebClient:

    final byte[] rawData = IOUtils.toByteArray(sourceInputStream);
    webClient.post()
             .uri(uri)
             .contentType(MediaType.APPLICATION_OCTET_STREAM)
             .bodyValue(rawData)
             .exchange()...

Я обеспокоен тем, что потенциально используется много памяти, учитывая, что иногда эти объекты могут быть довольно большими (~ 200Mb), поэтому хотелось бы читать непосредственно из InputStream и загружать в виде потока.

Я пытался:

 bodyValue(BodyInserters.fromResource(new InputStreamResource(inputStream))) 

, но получил исключение Тип содержимого 'application / octet-stream' не поддерживается для bodyType = org.springframework.web.reactive.function.BodyInserters

Поэтому я попытался удалить заголовок, но затем данные были повреждены.

Есть ли способ для потоковой передачи данных без прохождения через rawData в буфере в памяти []?

Спасибо

...