我正在使用 spring webflux 功能风格。
我想创建一个接受大图像文件的端点,并使用 webClient 以流方式将该文件发送到另一个服务。
所有文件处理都应该以流方式进行,因为我不想因为内存不足而导致我的应用程序崩溃。
有办法做到这一点吗?
大概是这样的:
@PostMapping(value = "/images/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public Mono<ResponseEntity<Void>> uploadImages(@RequestPart("files") Flux<FilePart> fileParts) {
return fileParts
.flatMap(filePart -> {
return webClient.post()
.uri("/someOtherService")
.body(BodyInserters.fromPublisher(filePart.content(), DataBuffer.class))
.exchange()
.flatMap(clientResponse -> {
//some logging
return Mono.empty();
});
})
.collectList()
.flatMap(response -> Mono.just(ResponseEntity.accepted().build()));
}
它接受多部分表单数据,您可以在其中附加多个图像文件并将它们上传到其他服务。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)