Spring Webflux上传大图像文件并使用WebClient以流方式发送文件[关闭]

2024-01-01

我正在使用 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(使用前将#替换为@)

Spring Webflux上传大图像文件并使用WebClient以流方式发送文件[关闭] 的相关文章

随机推荐