Я загружаю потоки (необработанных байтов) данных, используя сообщения 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 в буфере в памяти []?
Спасибо