springboot中使用GridFS上传文件、查询文件、删除文件

本文介绍了在SpringBoot项目中利用MongoDB的GridFS模块进行文件存储的实现。GridFS将文件拆分为块存储,并通过fs.files和fs.chunks两个集合管理文件元数据和二进制数据。文中提供了一个简单的存储、查询和删除文件的Demo,读者可以通过给定的链接下载参考。
摘要由CSDN通过智能技术生成

GridFS介绍

  • GridFS是MongoDB提供的用于持久化存储文件的模块,CMS使用MongoDB存储数据,使用GridFS可以快速集成开发。
    它的工作原理是:
    在GridFS存储文件是将文件分块存储,文件会按照256KB的大小分割成多个块进行存储,GridFS使用两个集合(collection)存储文件,一个集合是chunks,
    用于存储文件的二进制数据;一个集合是files,用于存储文件的元数据信息(文件名称、块大小、上传时间等信息)。从GridFS中读取文件要对文件的各各块进行组装、合并。

我在写一个spingboot项目,数据库用的是mongoDB,然后发现它里面有个存储文件用的GirdFs,感觉还是挺好用的,但是,网上又没找到详细教程,于是自己写了一个demo,大家有兴趣可以下载:
https://download.csdn.net/download/weixin_44446298/10982983

1.关于存文件

  @Autowired
    GridFsTemplate gridFsTemplate;

    @Test
    public void contextLoads() throws FileNotFoundException {
        File file = new File("d:/ziliao/index_ba
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
课程的实战源码是我在 GitHub 上开源项目 spring-boot-projects 的其一个项目代码,目前已有 2300 多个 star,项目截图如下: 由于项目比较受大家欢迎,因此心就出现了将它做成教学视频的想法,也就是你现在了解的这个课程《SpringBoot入门及前后端分离项目开发》,本课程是一个 Spring Boot 技术栈的实战类课程,课程共分为 3 大部分,前面两个部分为基础环境准备和相关概念介绍,第三个部分是 Spring Boot 项目实践开发。Spring Boot 介绍、前后端分离、API 规范等内容旨在让读者更加熟悉 SpringBoot 及企业开发需要注意的事项并具有使用 SpringBoot 技术进行基本功能开发的能力;这最后的项目实战为课程的主要部分,我会带着大家实际的开发一个前后端分离的 Spring Boot 实践项目,让大家实际操作并从无到有开发一个线上项目,并学习到一定的开发经验以及其的开发技巧,旨在让读者具有将 Spring Boot 真正应用于项目开发的能力; 以下为实践项目的页面和功能展示,分别为:登录页面 列表页面(分页功能) 图片上传功能 富文本编辑器整合使用 实践项目的主要功能和页面就是这些,通过项目展示大家也能够感受到,在实际应用开发的高频次功能都已经实现,稍加修改就可以运用到企业开发,整个项目的开发模式为前后端分离的模式,即 Spring Boot 提供后端接口,前端页面通过 Ajax 异步调用接口的方式与后端服务器进行交互并将数据填充至页面,这也是目前企业开发比较重用的开发模式,希望大家能够了解并且能够实际的上手开发。
Spring Boot与MongoTemplate可以用来操作GridFSGridFSMongoDB的一种文件存储机制,它将大文件拆分成小的chunks并存储在MongoDB的集合GridFS适用于存储和检索大文件,比如音频、视频或者其他大型文件。 在Spring Boot使用MongoTemplate操作GridFS需要进行以下步骤: 1. 首先,在`pom.xml`文件添加MongoDB和Spring Data MongoDB的依赖。例如: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> ``` 2. 在Spring Boot的配置文件(`application.properties`或者`application.yml`)配置MongoDB的连接信息,例如: ```properties spring.data.mongodb.host=localhost spring.data.mongodb.port=27017 spring.data.mongodb.database=mydb ``` 3. 创建一个MongoTemplate bean,用于操作MongoDB。可以在Spring Boot的配置类使用`@Bean`注解创建该bean,例如: ```java @Configuration public class MongoConfig { @Bean public MongoTemplate mongoTemplate(MongoDatabaseFactory mongoDbFactory, MongoMappingContext context) { return new MongoTemplate(mongoDbFactory, context); } } ``` 4. 使用MongoTemplate进行GridFS操作。例如,存储一个文件GridFS: ```java @Autowired private MongoTemplate mongoTemplate; public void saveFileToGridFS(InputStream fileInputStream, String filename) { ObjectId fileId = mongoTemplate.store(fileInputStream, filename); // 可以根据需要进行一些操作,比如保存fileId到其他集合等 } ``` 5. 检索GridFS文件: ```java @Autowired private MongoTemplate mongoTemplate; public GridFSFile getFileFromGridFS(String filename) { Query query = Query.query(Criteria.where("filename").is(filename)); return mongoTemplate.findOne(query, GridFSFile.class); } ``` 上述代码只是一个简单的示例,你可以根据实际需求进行更复杂的操作。希望对你有所帮助!如果还有其他问题,请继续提问。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值