我正在开发一个通过HTTP Post请求接收文件的服务。文件由带有Content-Type: application/octet-stream
头的请求主体发送。我希望将请求主体限制为10MB。以下是我的目标MRE:
@RestController
public class MyController {
@PostMapping("save")
public ResponseEntity<Map<String, Object>> save(@RequestBody byte[] data) {
return ResponseEntity.ok(Map.of("size", data.length));
}
}
为了测试我的端点,我尝试了以下curl
命令:
curl -X POST -H "Content-Type: application/octet-stream" --data-binary "@my_big_binary_file.whatever" http://localhost:8080/save
我尝试设置以下属性,但没有成功:
server.tomcat.max-http-form-post-size=10MB
server.tomcat.max-swallow-size=10MB
所以,我的问题是:我的服务上将有多个类似的请求。我如何将所有请求的大小限制在10MB以内?另外,我认为这是相关的:这两处房产的用途是什么?这不正是我所期待的吗?
在Sping Boot 2.7.9和3.0.4上使用Java 17进行测试
附言:我知道有一种方法可以使用下面的属性来限制multipart/form-data
的请求。这工作得很好。但这不是我所需要的。
spring.servlet.multipart.max-file-size=10MB
1条答案
按热度按时间j2datikz1#
好吧,Chin Huang插入的响应是有效的!你只需要稍微修改一下就可以限制八位流了。
大概是这样的:
这个解决方案基于Chin Huang answer,只是调整了数据类型。