1. 一个Mongo文档最大4M.
  2. GridFS不依赖于MongoDB, 其他符合规范的驱动都可以访问它。
  3. GridFS包含两部分:一部分存储文件名和其他metadata; 另一部分存储实际的文件,通常分成一个个大小为256k的小块。

    这两个部分通常被命名为files和chunks,在fs命名空间下,当然,这些都可以通过配置来更改。当你想区分不同的文件类型时,比如区分图片和视频,使用不同的命名空间是有用的。

  4. Mongofiles工具:
    1. 列出mongofiles.

      mongofiles list

      如果要访问远程服务器,用-h 比如:

      mongofiles list –h remoteserver1

    

  1. 上传文件:

    monofiles put <文件路径>

    上传后如果用mongofiles list来查看,发现存储的名字就是原文件的完成路径,但是实际上是存在GridFS中。也就是说,如果把原文件删了,GridFS还是可以查到的。

  2. 获取文件 :

    mongofiles get <文件路径>

    注意:这一操作会覆盖实际的物理文件。比如:把一个文件传到GridFS后,然后做了一些更改,再执行get操作,那么这段时间的更改都会被覆盖掉。

  3. 删除文件。

    mongofiles delete <文件路径>

  4. 搜索文件

    mongofiles search <关键字>

 

  1. 当上传同一文件两次时,mongo会存两个同名的文件,只有_id属性不同。
  2. GridFS默认的chunk大小是 256k, 知道这个大小是必要的,因为你可以知道你的文件存储的时候被分成多少块。当然数据库驱动会为你处理所有的事情,你在存储的时候不需要担心这些chunk size相关的问题。
  3. Mongo依赖于MD5来实现security 和 integration, security是为了防止没有权限的用户访问了不该他访问的资源,integration确保文件不被更改。

    MD5现在已经不安全,理论上可以产生用同一个md5 checksum(或者md5 hash)产生两个不同的文件(这种情况被称为collision),但是由于做此事的工作量非常大,而且把文件的其他属性用做成一样的非常难,而且有的没有意义,所以实际上还是可以继续用MD5.

    如果你基于安全性考虑,最好用SHA家族的算法,最理想的是SHA-256或者SHA-512, 尽管理论上这些算法也有风险,但是目前还没有遇到实际这样做出的例子。但是,对于用户名密码等重要的数据,你可能要考虑用SHA家族的算法来进行加密.

  4. 查看GridFS 的命令。
    1. db.fs.files.find() 查看GridFS metadata的集合。

    2. db.fs.chunks.find() 查看实际的文件块,以256k为单位。

       

      这里需要注意的是,GridFS只是数据存储的地方,当files集合中的一条记录被删除时,GridFS不会自动删除chunks中对应的记录,需要数据库驱动程序(比如Mongo c++ driver)来做这种清理工作。所以,虽然你可以在程序中直接操作files集合,但是最好还是通过数据库驱动程序(比如比如Mongo c++ driver)来操作。

       

     

 

(The Definitive Guide to MongoDB)

 

最新文章

  1. 【leetcode】Remove Duplicates from Sorted List
  2. 全选或反选表格中第一列的checkbok
  3. JavaScript中两个感叹号(!!)的作用是什么?
  4. Input框去掉蓝色边框
  5. Assembly(程序集) 反射和缓存
  6. H3 BPM 笔记
  7. The Suspects(POJ 1611 并查集)
  8. EffectiveC#00--选择定义和实现接口,而不是继承
  9. yiic执行出现不是内部或外部命令的解决办法
  10. C#将datatable的某一列转换成json格式的字符串
  11. 微信小程序监听input输入并取值
  12. 【iOS】swift init构造器
  13. Jenkins构建时间Poll Scm的设置
  14. Django—models相关操作
  15. 手机端input[type=date]的placeholder不起作用
  16. 工作笔记6-java相关
  17. Java15-java语法基础(十五)——内部类
  18. 装Office时,安装程序找不到Office.zh-cn\OfficeMUI问题
  19. html部分常用标签的含义及作用
  20. table maker&#39;s delimma

热门文章

  1. BZOJ.2428.[HAOI2006]均分数据(随机化贪心/模拟退火)
  2. UVALive 5968
  3. hdoj 1753 大明A+B 高精度/java
  4. opencv 支持向量机SVM分类器
  5. [Visual Studio] SOA服务框架搭建
  6. 分布式文件系统 ~MogileFS~
  7. Visual Studio 2013 密钥
  8. ASK,OOK,FSK,GFSK是什么
  9. 由于拷贝的文件太大,不可能一直开着SHELL,所以让SCP后台运行
  10. iOS开源控件库收集