本文来说下如何自定义MongoDB的存储桶

文章目录

  • 概述
  • 自定义MongoDB的存储桶
  • 程序测试
  • 本文小结

概述

在使用MongoDB的GridFS的时候,默认存储文件的是fs的存储桶,如navicat所示


自定义MongoDB的存储桶

那么假如我使用自定义的存储桶pictureFs,该怎么设置呢?首先,查看一下我们通过注解使用的GridFsTemplate的源码,发现提供了构造参数。

 public GridFsTemplate(MongoDatabaseFactory dbFactory, MongoConverter converter, @Nullable String bucket) {super(converter);Assert.notNull(dbFactory, "MongoDbFactory must not be null!");this.dbFactory = dbFactory;// bucket为存储桶的名字this.bucket = bucket;}

那么不就是调用构造参数,传入bucket的值不就行了

点进去查看MongoDbFactory和MongoConverter的源码,可知这两个都是接口,总所周知接口不能实例化,而且这两个参数不能为空,可以使用接口的实现类,然后接口实现类不止一个!细看源码,源码注释说的很清楚了,要使用已经给出了的,MongoDbFactory和MongoConverter。首先我们都知道,springboot的ioc依赖注入会把所有的bean类加载到bean容器,那么也就是说,我们可以从bean容器中取出这两个bean。


程序测试

MongoDBConfig

@Configuration
public class MongoDBConfig {/**** 自定义桶的名称* @param dbFactory* @param converter* @return*/@Beanpublic GridFsTemplate gridFsTemplate(MongoDatabaseFactory dbFactory, MongoConverter converter) {return new GridFsTemplate(dbFactory, converter, "pictureFs");}
}

文件上传

    /*** 通用上传单个* 文件请求*/@SneakyThrows@PostMapping("/uploadSingleFile")@ApiOperation(value = "上传单个文件")public ResponseBean<?> uploadSingleFile(MultipartFile file) {// 新文件名String originalFilename = file.getOriginalFilename();// 获得文件输入流InputStream ins = file.getInputStream();// 获得文件类型String contentType = file.getContentType();// 将文件存储到mongodb中,mongodb将会返回这个文件的具体信息
//        ObjectId objectId = gridFsTemplate.store(ins, originalFilename, contentType);// 上传文件中我们也可以使用DBObject附加一些属性DBObject  metadata = new BasicDBObject();metadata.put("hello","word");ObjectId objectId = gridFsTemplate.store(ins, originalFilename, contentType, metadata);log.info(objectId.toString());log.info("接收文件:" + originalFilename);//返回信息return new ResponseBean<>(200, "上传成功", objectId.toString());}

程序结果


本文小结

本文介绍了如何自定义MongoDB的存储桶,后续会对mongodb相关的知识与内容进行持续深入的介绍。

如何自定义MongoDB的存储桶相关推荐

  1. mongodb安装_MongoDB:GridFS删除方法删除存储桶中的所有文件

    mongodb安装 前一段时间,我们遇到了MongoDB GridFS的奇怪行为,这使我为MongoDB Java驱动程序创建了一个故障单. 今天,我在浏览器书签中找到了指向故障单的链接. 该票证目前 ...

  2. MongoDB:GridFS删除方法删除存储桶中的所有文件

    不久前,我们遇到了MongoDB GridFS的奇怪行为,这使我为MongoDB Java驱动程序创建了一个故障 单 . 今天,我在浏览器书签中找到了指向故障单的链接. 该票证目前尚未解决,因此我认为 ...

  3. aws s3 静态网站_使用AWS S3存储桶启动静态网站

    aws s3 静态网站 This article explores the AWS S3 bucket to configure a static website. 本文探讨了用于配置静态网站的AWS ...

  4. aws rds监控慢sql_将AWS S3存储桶与AWS RDS SQL Server集成

    aws rds监控慢sql This article gives you an overview of integrating AWS S3 buckets with AWS RDS SQL Serv ...

  5. 存储桶上传策略和签名 URL的绕过及利用

    本文中带有自己一些拙见,读者若存在相关问题或者有其他想法的,欢迎在评论区交流探讨.原文:https://labs.detectify.com/2018/08/02/bypassing-exploiti ...

  6. 使用腾讯云存储桶(COS)托管静态网站

    使用腾讯云存储桶(COS)托管静态网站 本文介绍如何使用腾讯云服务中的存储桶(COS)托管一个静态网站.这个静态网站可以用于展示个人网站等信息,并且使用腾讯云内容分发网络(CDN)来加速全球各地用户对 ...

  7. php aws s3查看所有文件_国内AWS没有文件系统服务,快来看如何通过EC2挂载S3存储桶替代...

    作者:光环云 尹晓征 当有需求必须使用共享磁盘服务时,但目前AWS的EFS因为在国内落地的情况,只能通过自建诸如NFS或者GFS等服务来完成,整个过程比较繁杂. S3是互联网的一种存储解决方案,并且借 ...

  8. bash脚本 文件_如何使用Bash脚本来管理从AWS S3存储桶下载和查看文件

    bash脚本 文件 As you can read in this article, I recently had some trouble with my email server and deci ...

  9. MinIO存储桶通知指南 ​​​​​​​

    MinIO存储桶通知指南 存储桶(Bucket)如果发生改变,比如上传对象和删除对象,可以使用存储桶事件通知机制进行监控,并通过以下方式发布出去: Notification Targets AMQP ...

最新文章

  1. 行为驱动开发BDD概要
  2. ASP.NET Core中的OWASP Top 10 十大风险-SQL注入
  3. 使用Vert.x进行响应式开发
  4. 【视觉项目】【day1】8.20号实验记录(初步使用模板匹配)
  5. admin- 源码解析(流程)
  6. linux端口转发_详解Linux网桥功能--概念、工作机制、相关命令及实例说明
  7. JavaScript 学到什么程度可以学 Node.js?
  8. linux--安装完qt出现 /usr/bin/ld: error: cannot find -lGL错误
  9. base64 convert to file
  10. 程序员之路(一年有感)
  11. 经典机器学习系列(十二)【学习排序】
  12. 什么是 Rootkit?
  13. Altium Designer软件插件之封装神器Altium Library Loader
  14. Mysql和Oracle实现序列自增
  15. [软件人生]写书与程序员
  16. 魅族16php7.3系统,魅族16th官方稳定版固件rom系统刷机包:Flyme 7.3.0.0A
  17. 美剧字幕组长讲述她如何练听力的
  18. [学习SLAM]VINS中IMU预积分的误差推到公式与代码雅克比(协防差/信息矩阵)构建
  19. python字符串操作入门十八讲——合集一
  20. 计算机启动u盘启动不了怎么办,电脑没有U盘启动项怎么办?主板不支持U盘启动怎么办?...

热门文章

  1. 11.2.0.3.7 PSU补丁升级
  2. 解决int和Integer不能互转
  3. C#窗体间的数据传值(转)
  4. ArcMap下栅格图象矢量化步骤:
  5. 左神算法进阶班5_3求公司的最大活跃度
  6. centos7安装docker-ce新版
  7. microservices kubernetes
  8. Rectangles
  9. nginx学习(一):基本安装
  10. javascript权威指南(6) - 对象