Spring WebFlux: set max file(s) size for uploading files(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:设置上传文件的最大文件大小的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Spring WebFlux:设置上传文件的最大文件大小
基础教程推荐
- Java Keytool 导入证书后出错,"keytool error: java.io.FileNotFoundException &拒绝访问" 2022-01-01
- 设置 bean 时出现 Nullpointerexception 2022-01-01
- 无法使用修饰符“public final"访问 java.util.Ha 2022-01-01
- “未找到匹配项"使用 matcher 的 group 方法时 2022-01-01
- FirebaseListAdapter 不推送聊天应用程序的单个项目 - Firebase-Ui 3.1 2022-01-01
- 在 Libgdx 中处理屏幕的正确方法 2022-01-01
- 如何使用 Java 创建 X509 证书? 2022-01-01
- 降序排序:Java Map 2022-01-01
- Java:带有char数组的println给出乱码 2022-01-01
- 减少 JVM 暂停时间 >1 秒使用 UseConcMarkSweepGC 2022-01-01