MongoDB的GridFS存储文件详解大数据

GridFS使用两个表来存储数据:

  • files:包含元数据对象

文件的元数据放在这个集合里面,默认fs.files。这个里面的每个文档表示GridFS中的一个文件,与文件相关的自定义元数据也保存在其中,除了用户自定义的键,GridFS还有默认的一些键:

  1. _id:文件唯一的id,在块中为“files_id”键的值存储
  2. length:文件内容总的字节数
  3. chunksize:每块的大小,以字节为单位。默认25K,可以调整
  4. uploadDate:文件存入的时间
  5. md5:文件内容的md5校验,由服务端生成
  • chunks:包含其他一些相关信息的二进制块

GridFS的块有个单独的集合。默认情况下,块将使用fs.chunks集合,如果有需要可以覆盖。这个块集合里面文档的结构非常简单:

Js代码  
收藏代码

  1. {  
  2. “_id”:ObjectId(“……”),  
  3. “n”:0,  
  4. “data”:BinData(“……”),  
  5. “files_id”:ObjectId(“…….”)  
  6. }  
  1. _id:标志唯一
  2. n:表示块的编号,也就是这个块在原文件中的顺序号
  3. data:包含组成文件块的二进制数据
  4. files_id: 包含这个块元数据的文件文档的”_id”

使用mongofile来操作GridFS:

Java代码  
收藏代码

  1. //将 “aaaa” 写入foo.txt文件中  
  2. c:/MongoDB/mongodb_win32_x86_64_2.2.7/bin>echo “aaaa” > foo.txt  
  3. //将foo.txt保存到GridFS中  
  4. c:/MongoDB/mongodb_win32_x86_64_2.2.7/bin>mongofiles.exe put foo.txt  
  5. connected to: 127.0.0.1  
  6. added file: { _id: ObjectId(‘53449f0becdebde54ff76105’), filename: “foo.txt”, ch  
  7. unkSize: 262144, uploadDate: new Date(1397006091696), md5: “819596956779801cced4  
  8. fb21379bf023″, length: 9 }  
  9. done!  
  10. //查看  
  11. c:/MongoDB/mongodb_win32_x86_64_2.2.7/bin>mongofiles.exe list  
  12. connected to: 127.0.0.1  
  13. foo.txt 9  
  14. //获取  
  15. c:/MongoDB/mongodb_win32_x86_64_2.2.7/bin>mongofiles.exe get foo.txt  
  16. connected to: 127.0.0.1  
  17. done write to: foo.txt  

命令说明 

put:将文件系统中的一个文件添加到GridFS

list:会把所有添加到GridFS中的文件列出来

get:put的反向操作

MongoDB的GridFS存储文件详解大数据

转载请注明来源网站:blog.ytso.com谢谢!

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/9706.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论