【发布时间】:2019-04-01 21:10:11
【问题描述】:
我正在使用 Spring Boot 创建一个端点,该端点执行系统命令 (java.lang.Runtime API) 的组合以生成一个 zip 文件以根据请求返回给客户端,代码如下。
@GetMapping(value = "generateZipFile")
public ResponseEntity<Resource> generateZipFile(@RequestParam("id") Integer id) throws IOException {
org.springframework.core.io.Resource resource = null;
//generate zip file using commandline
resource = service.generateTmpResource(id);
return ResponseEntity.ok()
.header(HttpHeaders.CONTENT_TYPE, "application/zip")
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"randomFile.zip\"")
.body(resource);
//somehow delete generated file here after client receives it
}
由于明显的磁盘限制原因,我无法继续在服务器上堆积文件,因此我正在寻找一种在客户端下载文件后立即删除文件的方法。 Spring Boot中有解决方案吗?我基本上需要挂钩一个回调,在用户收到资源后进行清理。
我使用的是 Spring Boot 2.0.6
【问题讨论】:
标签: spring-boot