1.概念
GridFS是mongoDB自带的文件系统,它以二进制的形式存储文件 大型文件系统的绝大多数特性GridFS全可以完成。
- GridFS会直接利用已建立的复制、分片机制;
- GridFS可以避免传统文件系统的某些弊端,例如同一目录下文件数量过多;
- GridFS不会产生磁盘碎片;
两个明确:
- 1.GridFS并非MongoDB的内部特性,它是所有官方驱动用来在数据库中管理大型二进制对象的一个惯例
- 2.GridFS没有真实文件系统那样丰富的语义。它没有锁和并发的协议,这就把GridFS接口限制在了简单的提交(put)、获取(get)和删除(delete)操作上。也就是说,想要更新一个文件,需要先删除,然后再提交新版本。
存储原理:
GridFS会把大文件拆分成小的256KB的块,将每个块都保存在单独的文档里。这些块默认保存在名为fs.chunks
的集合中。写完块之后,文件的元数据会被放到名为fs.files
的另一集合中,用单独的文档来保存。
利用的工具 :
mongofiles.exe(Windows)
mongofiles.sh(Linux)
2.使用GridFS
2.1查看GridFS的所有功能
在cmd 命令行输入:
mongofiles --help
2.2上传一个文件
mongofiles -d foobar -l "E:\a.txt" put "a.txt“
2.3查看GridFS的文件存储状态
利用VUE查看
集合命令查看
db.fs.chunks.find() 和 db.fs.files.find()
2.4查看文件内容
C:\Users\thinkpad>mongofiles -d foobar get "a.txt“
VUE可以查看,shell无法打开文件
2.5 查看所有文件
mongofiles -d foobar list
2.6 删除已经存在的文件VUE中操作
mongofiles -d foobar delete 'a.txt'