Springboot + MongoDB 存储文件:上传文件及附属信息,文件保存到GridFS数据库,使用流式传输获取文件 可存储geojson、图片、视频、PDF等大型文件

本文介绍了如何在Springboot2.6项目中,针对MongoDBGridFS处理大型GeoJSON数据,包括文件的流式上传、按FileID获取、以及删除功能,以解决系统迁移和外部OSS访问限制的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目背景

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()
                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值