从 InputStream 获取 Publisher<ByteBuffer>

wut*_*aer 5 java bytebuffer publisher reactor mongodb-java

我刚刚升级了 mongo-db-java-driver,现在方便的功能GridFSBucket.uploadFromStream已经消失了。因此我们现在得到了一个

GridFSUploadPublisher<ObjectId> uploadFromPublisher(String filename, Publisher<ByteBuffer> source);
Run Code Online (Sandbox Code Playgroud)

有什么想法如何将我的 InputStream 转换为 吗Publisher<ByteBuffer>?java驱动程序或Reactor中有任何实用函数吗?

小智 2

spring框架中有一个util将输入流转换为数据缓冲区通量。并且直接将数据缓冲区映射为字节缓冲区。

Flux<ByteBuffer> byteBufferFlux = DataBufferUtils.readByteChannel(() -> Channels.newChannel(inputStream), DefaultDataBufferFactory.sharedInstance, 4096).map(DataBuffer::asByteBuffer);
Run Code Online (Sandbox Code Playgroud)