Spring WebFlux:设置上传文件的最大文件大小
Spring WebFlux: set max file(s) size for uploading files
我正在使用 FileParts 的流量来上传文件@RequestPart(FILES) Flux<FilePart> files
并尝试限制文件的最大大小。看起来旧方法不起作用:
spring.servlet.multipart.max-file-size=1MB
spring.servlet.multipart.max-request-size=1MB
而且我没有任何方法可以在 FilePart
界面中获取文件大小。那么有什么方法可以限制 webflux 中上传文件的最大大小,而不复制它?我知道有 headers 像 Content-Length
,但它看起来不安全。
Web on Reactive Stack documentation 声明如下:
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.
我能够通过此配置应用它 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);
}
}
我正在使用 FileParts 的流量来上传文件@RequestPart(FILES) Flux<FilePart> files
并尝试限制文件的最大大小。看起来旧方法不起作用:
spring.servlet.multipart.max-file-size=1MB
spring.servlet.multipart.max-request-size=1MB
而且我没有任何方法可以在 FilePart
界面中获取文件大小。那么有什么方法可以限制 webflux 中上传文件的最大大小,而不复制它?我知道有 headers 像 Content-Length
,但它看起来不安全。
Web on Reactive Stack documentation 声明如下:
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.
我能够通过此配置应用它 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);
}
}