Spring WebFlux:设置上传文件的最大文件大小

2023-01-16Java开发问题
411

本文介绍了Spring WebFlux:设置上传文件的最大文件大小的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我正在使用 FileParts 的 Flux 来上传文件 @RequestPart(FILES) Flux<FilePart>文件

I'm using flux of FileParts to upload files @RequestPart(FILES) Flux<FilePart> files

并试图限制文件的最大大小.看起来旧方法不起作用:

And trying to limit maximum size of files. Looks like old way does not work:

spring.servlet.multipart.max-file-size=1MB
spring.servlet.multipart.max-request-size=1MB

而且我没有任何方法可以在 FilePart 界面中获取文件大小.那么有什么方法可以限制 webflux 中上传文件的最大大小,而不复制它?我知道有像 Content-Length 这样的标头,但它看起来并不安全.

And I dont have any methods to get file size in FilePart interface. So is ther any way to limit max size of uploaded file in webflux, whithout copying it? I know that there are headers like Content-Length, but it does not look secure way.

推荐答案

Web on Reactive Stack 文档 声明如下:

对于写入磁盘的文件部分,有一个额外的 maxDiskUsagePerPart 属性来限制每个部分的磁盘空间量.还有一个 maxParts 属性来限制多部分请求中的部分总数.要在 WebFlux 中配置所有 3 个,您需要向 ServerCodecConfigurer 提供一个预配置的 MultipartHttpMessageReader 实例.

For file parts written to disk, there is an additional maxDiskUsagePerPart property to limit the amount of disk space per part. There is also a maxParts property to limit the overall number of parts in a multipart request. To configure all 3 in WebFlux, you’ll need to supply a pre-configured instance of MultipartHttpMessageReader to ServerCodecConfigurer.

我可以通过这个配置类来应用它:

I was able to apply it via this configuration class:

@Configuration
@EnableWebFlux
public class WebConfig implements WebFluxConfigurer {

    @Override
    public void configureHttpMessageCodecs(ServerCodecConfigurer configurer) {
        SynchronossPartHttpMessageReader partReader = new SynchronossPartHttpMessageReader();
        partReader.setMaxParts(1);
        partReader.setMaxDiskUsagePerPart(10L * 1024L);
        partReader.setEnableLoggingRequestDetails(true);

        MultipartHttpMessageReader multipartReader = new MultipartHttpMessageReader(partReader);
        multipartReader.setEnableLoggingRequestDetails(true);

        configurer.defaultCodecs().multipartReader(multipartReader);
    }

}

这篇关于Spring WebFlux:设置上传文件的最大文件大小的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

如何使用 JAVA 向 COM PORT 发送数据?
How to send data to COM PORT using JAVA?(如何使用 JAVA 向 COM PORT 发送数据?)...
2024-08-25 Java开发问题
21

如何使报表页面方向更改为“rtl"?
How to make a report page direction to change to quot;rtlquot;?(如何使报表页面方向更改为“rtl?)...
2024-08-25 Java开发问题
19

在 Eclipse 项目中使用西里尔文 .properties 文件
Use cyrillic .properties file in eclipse project(在 Eclipse 项目中使用西里尔文 .properties 文件)...
2024-08-25 Java开发问题
18

有没有办法在 Java 中检测 RTL 语言?
Is there any way to detect an RTL language in Java?(有没有办法在 Java 中检测 RTL 语言?)...
2024-08-25 Java开发问题
11

如何在 Java 中从 DB 加载资源包消息?
How to load resource bundle messages from DB in Java?(如何在 Java 中从 DB 加载资源包消息?)...
2024-08-25 Java开发问题
13

如何更改 Java 中的默认语言环境设置以使其保持一致?
How do I change the default locale settings in Java to make them consistent?(如何更改 Java 中的默认语言环境设置以使其保持一致?)...
2024-08-25 Java开发问题
13