java-如何使用WebClient执行零拷贝上传和下载?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-如何使用WebClient执行零拷贝上传和下载?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含815字,纯文字阅读大概需要2分钟。
内容图文
您可以使用org.springframework.web.reactive.function.client.WebClient使用Spring 5 WebFlux执行零拷贝上传和下载吗?
解决方法:
没错,从基于文件的资源发布数据时,现在支持零拷贝.
因此,以下内容正确无误:
client.post()
.body(BodyInserters.fromResource(new FileSystemResource(new File("file.txt"))));
现在,对于阅读部分,Spring框架中现在不支持零复制.您可以为此在jira.spring.io上创建一个增强问题.
您的代码示例应如下所示:
Flux<DataBuffer> incoming = client.post()
.retrieve().bodyToFlux(DataBuffer.class);
Mono<Void> writeOperation = DataBufferUtils.write(incoming, channel)
.map(DataBufferUtils::release)
.then();
// subscribe to the returned value, which will complete when writing is done
不幸的是,将数据读取到DataBuffer不会进行零复制,因为数据将被复制到内存中.我认为在阅读方面不支持零拷贝,因此这可能是对https://jira.spring.io的增强要求.
内容总结
以上是互联网集市为您收集整理的java-如何使用WebClient执行零拷贝上传和下载?全部内容,希望文章能够帮你解决java-如何使用WebClient执行零拷贝上传和下载?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。