我正在使用Spring Webflux文件上传。从控制器我想上传文件在亚马逊S3桶。所以在控制器中我收到了以下对象
org.springframework.http.codec.multipart.FilePart
从FilePart.content()
中我可以得到
reactor.core.publisher.Flux<org.springframework.core.io.buffer.DataBuffer>
我的问题是如何将这个Flux<DataBuffer>
转换为Flux<ByteBuffer>
。我的意思是进入下面的对象
Flux<java.nio.ByteBuffer>
2条答案
按热度按时间zkure5ic1#
你可以使用
org.springframework.core.io.buffer.DataBuffer#asByteBuffer()
:7gcisfzg2#
answer of tmarwen中提到的
asByteBuffer()
方法自Sping Boot 3.x**(和Spring framework 6.x)以来已弃用**。添加了以下弃用警告:不推荐
toByteBuffer(ByteBuffer)
、readableByteBuffers()
或writableByteBuffers()
。*如果您使用
DataBuffer
上传文件,则可以使用readableByteBuffers()
。此方法返回一个Iterator<ByteBuffer>
,因此您可以将其与Flux.fromIterable()
一起使用:注意事项:
readableByteBuffers()
方法是在Sping Boot 3.0.3(Spring framework 6.0.5)中添加的,而自Spring Boot 3.0.0(Spring framework 6.0.0)以来存在弃用警告。这意味着您必须将项目升级到至少Sping Boot 3.0.3才能使其工作。