这是一个Spring(启动,MVC,REST)问题。
这应该很简单,但是数小时的搜索并没有显示出良好的答案。
基本上我想从服务中向服务器发送一个请求并将一些对象返回给控制器,然后在过滤头之后,将post请求的响应中的字节复制到来自控制器的响应中在文件系统或内存中制作副本。这意味着创建文件或字节数组的解决方案都不合适。
控制器应该是
@RequestMapping(value = "/files/{file_name}", method = RequestMethod.GET)
@ResponseBody
public XXXX getFile(@PathVariable("file_name") String fileName) throws Exception {
return service.getFile(file_name);
}
并且服务应该将请求主体POST到某个URL,过滤响应头,并返回可以复制到响应的内容。
重要的是它是一个流到流的副本 - 整个响应不应该存储在内存中,也不需要存储在文件系统中。
我已经查看了RestTemplate和RequestEntity等的API文档以及无数的堆栈溢出答案,但没有什么是明确的(限制搜索到这个查询是不行的 - 关于保存到文件的各种事情或回复文件显示在任何搜索中。)