首页 > 其他分享 >mongo GridFSBucket

mongo GridFSBucket

时间:2024-03-20 12:22:04浏览次数:34  
标签:mongo mongodb response import id GridFSBucket

1、描述:mongo   单机使用 GridFSBucket

2、pox中添加jar

<dependency>
    <groupId>org.mongodb</groupId>
    <artifactId>mongo-java-driver</artifactId>
    <version>3.12.9</version>
</dependency>

3、module中使用,直接上代码

  3.1 configuration 的bean创建

import com.mongodb.client.*;
import com.mongodb.client.gridfs.GridFSBucket;
import com.mongodb.client.gridfs.GridFSBuckets;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.annotation.Resource;

/**
 * @author :tycoon
 * @description :mongo utility
 * @version: V1.0.0
 * @create :2024-03-20 12:13:25
 */
@Configuration
public class GridFSBucketConfig {

    @Value("${spring.data.mongodb.database}")
    private String db;
    @Resource
    private MongoClient mongoClient;

    /**
     * 创建默认的bucket, bucket name: fs
     */
    @Bean
    public GridFSBucket getGridFSBucket() {
        MongoDatabase database = mongoClient.getDatabase(db);
        return GridFSBuckets.create(database);
    }
 }

3.2 保存图片之mongo中

/**
 * @author :tycoon
 * @description :接收图片转换目标图存储到mongo数据库中
 * @version: V1.0.0
 * @create :2023-09-29 23.23:25
 */
@Controller
public class ImageController {

    @Autowired
    private GridFSBucket gridFSBucket;

    @GetMapping("imagePreview/{id}")
    public void imagePreview(@PathVariable("id") String id,HttpServletResponse response) throws IOException {

        Document query = new Document("_id", new ObjectId(id));
        GridFSFile file = gridFSBucket.find(query).first();

        if(file == null){
            response.setStatus(HttpServletResponse.SC_NOT_FOUND);
            return;
        }
        //响应头
        response.setContentType("image/png");
        // 获取文件流
        OutputStream outputStream = response.getOutputStream();
        gridFSBucket.downloadToStream(file.getObjectId(),outputStream);
        outputStream.close();
    }
}

 


标签:mongo,mongodb,response,import,id,GridFSBucket
From: https://www.cnblogs.com/northeastTycoon/p/18084950

相关文章

  • MongoDB 入门篇
    原文链接: https://www.cnblogs.com/clsn/p/8214194.html1.1数据库管理系统 在了解MongoDB之前需要先了解先数据库管理系统1.1.1什么是数据?数据(英语:data),是指未经过处理的原始记录。一般而言,数据缺乏组织及分类,无法明确的表达事物代表的意义,它可能是......
  • mongoose
    挖坑:集合CURD,文档CURD[数据库连接]连接一个不存在的数据库,不会立即创建该数据库,只有执行到文档对象的save等方法时,才会去创建该数据库constmongoose=require('mongoose')//这里捕获的是链接过程中发生的异常constdb=mongoose.connect('mongodb://host:p......
  • mongoDB
    [管理员]创建管理员admin数据库中的是超级管理员,其他库中的是一般管理员超级管理员可以创建其他管理员在哪个数据库创建的管理员,只能在哪个数据库中进行登录在非admin中创建的用户,只能赋予其所在数据库的相关权限>useadmin//创建用户(用户名密码权限列......
  • mongo page query based on conditions
    一、MongoTemplate中Aggregation应用使用Aggregation聚合查询支持返回固定字段支持分组计算(count)总数、(sum)求和、(avg)平均值、(max)最大值、(min)最小值等publicPage<Student>getListWithAggregation(StudentVOstudentVO){Sortsort=Sort.by(Sort.Directi......
  • mongo aggregation
    在mongo中aggregation(聚合应用)1、插入测试数据db.tycoon.insertMany([{item:"paper",tycoon:25,size:{h:14,w:21,cm:"and"},status:"A"},{item:"notebook",tycoon:50,size:{h:8.5,w:11,cm:"in"},status:"B"......
  • Mysql,MongoDB,Redis的横纵向对比
    一,什么是MysqlMysql是一款安全,可以跨平台,高效率的数据库系统,运行速度高,安全性能高,支持面向对象,安全性高,并且成本比较低,支持各种开发语言,数据库的存储容量大,有许多的内置函数。二,什么是MongoDBMongoDB是基于分布式文件存储的数据库,是一个介于关系型数据库和非关系型数据库之......
  • MongoDB 的日志配置
    配置日志相关的参数默认的配置文件是/etc/mongod.conf,可以在该文件中配置与日志相关的信息。比如:more/etc/mongod.conf#wheretowriteloggingdata.#EnableloggingtoafilesystemLog:quiet:falsedestination:filelogAppend:truepath:/data/log/mon......
  • 【Mongodb】Linux安装Mongodb
    目录:一、官网下载安装包二、安装配置Mongodb三、安装mongosh四、安全配置 一、官网下载安装包1、下载安装包(Mongodb官网地址:https://www.mongodb.com/zh-cn)二、安装配置Mongodb 1、上传到服务器后解压#解压tar-xvfmongodb-linux-x86_64-enter......
  • MongoDB 重新同步复制集成员
    测试的复制集因为磁盘空间的问题,落后主节点太多,数据不同步:{"t":{"$date":"2024-02-19T16:13:06.387+08:00"},"s":"I","c":"REPL","id":21799,"ctx":"ReplCoordExtern-0","msg&......
  • spring boot使用MongoRepository简单的CRUD
    简单的CRUD首先,定义一个实体类,例如User:@DocumentpublicclassUser{@IdprivateStringid;privateStringname;privateintage;//构造函数、getter和setter省略...}接下来,定义一个继承自MongoRepository的接口,例如UserRepository:publicint......