Вы можете конвертировать, используя DefaultDataBuffer
, который вы можете создать с помощью DefaultDataBufferFactory
DataBufferFactory dataBufferFactory = new DefaultDataBufferFactory();
Flux<DataBuffer> buffer = getS3File(key).map(dataBufferFactory::wrap);
BodyInserter<Flux<DataBuffer>, ReactiveHttpOutputMessage> inserter =
BodyInserters.fromDataBuffers(buffer);
Вам вообще не нужен BodyInserter, хотя при использовании Webclient вы можете использовать следующую сигнатуру метода для body()
<T, P extends Publisher<T>> RequestHeadersSpec<?> body(P publisher, Class<T> elementClass);
В который затем вы можете передать свой Flux<ByteBuffer>
напрямую, указав класс для использования
WebClient.create("http://someUrl")
.post()
.uri("/someUri")
.body(getS3File(key),ByteBuffer.class)