项目背景
Springboot2.6 + MongoDB 存储大型 geojson数据 PDF文档等
因为部分文件需要随系统保存,直接存储本地路径会导致系统迁移、Docker运行等出现问题,内网系统不能使用外部OSS,内部单独搭建OSS也难以维护,于是采用MongoDB的GridFS存储文件
获取时使用流式传输获取
示例包含导入、删除
后端代码
Controller
@PostMapping("/import")
@RequiresPermissions(PermissionConstant.ADD)
public ResponseData<?> importGeoData(@RequestParam(value = "param1",required = false) String param1, @RequestParam(value = "param2",required = false) String param2,@RequestParam(value = "size",required = false) long size, @RequestParam(value = "file",required = false) MultipartFile file) throws Exception {
exampleUploadRequest uploadRequest = new exampleUploadRequest();
uploadRequest.setParam1(param1);
uploadRequest.setParam2(param2);
uploadRequest.setSize(size);
uploadRequest.setFile(file);
return getResult(fileService.importExampleData(uploadRequest));
}
@Operation(summary = "根据FileId获取文件")
@GetMapping("/getByFileId/{fileId}")
@RequiresPermissions(PermissionConstant.GET)
public ResponseEntity<StreamingResponseBody> getByFileId(@PathVariable("fileId") String fileId) {
return ResponseEntity.ok()