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)

 

Mongo读书笔记1 -- GridFS的更多相关文章

  1. Mongo读书笔记2 -- 数据类型

      Mongo有多种类型的collection, 默认的是随着document 数目的增多自动增大; 还有一些collection被称为capped collection, 只能包含固定数目的docu ...

  2. 读书笔记汇总 - SQL必知必会(第4版)

    本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...

  3. 读书笔记--SQL必知必会18--视图

    读书笔记--SQL必知必会18--视图 18.1 视图 视图是虚拟的表,只包含使用时动态检索数据的查询. 也就是说作为视图,它不包含任何列和数据,包含的是一个查询. 18.1.1 为什么使用视图 重用 ...

  4. 《C#本质论》读书笔记(18)多线程处理

    .NET Framework 4.0 看(本质论第3版) .NET Framework 4.5 看(本质论第4版) .NET 4.0为多线程引入了两组新API:TPL(Task Parallel Li ...

  5. C#温故知新:《C#图解教程》读书笔记系列

    一.此书到底何方神圣? 本书是广受赞誉C#图解教程的最新版本.作者在本书中创造了一种全新的可视化叙述方式,以图文并茂的形式.朴实简洁的文字,并辅之以大量表格和代码示例,全面.直观地阐述了C#语言的各种 ...

  6. C#刨根究底:《你必须知道的.NET》读书笔记系列

    一.此书到底何方神圣? <你必须知道的.NET>来自于微软MVP—王涛(网名:AnyTao,博客园大牛之一,其博客地址为:http://anytao.cnblogs.com/)的最新技术心 ...

  7. Web高级征程:《大型网站技术架构》读书笔记系列

    一.此书到底何方神圣? <大型网站技术架构:核心原理与案例分析>通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计 ...

  8. LOMA280保险原理读书笔记

    LOMA是国际金融保险管理学院(Life Office Management Association)的英文简称.国际金融保险管理学院是一个保险和金融服务机构的国际组织,它的创建目的是为了促进信息交流 ...

  9. 《3D Math Primer for Graphics and Game Development》读书笔记2

    <3D Math Primer for Graphics and Game Development>读书笔记2 上一篇得到了"矩阵等价于变换后的基向量"这一结论. 本篇 ...

随机推荐

  1. 如何破解安卓App

    韩梦飞沙 yue31313 韩亚飞 han_meng_fei_sha  313134555@qq.com 如何破解安卓App

  2. Spring的优点

    Spring的优点 1.低侵入式设计,代码污染极低: 2.独立于各种应用服务器,基于Spring框架的应用,可以真正实现Write Once,Run Anywhere的承诺: 3.Spring的DI机 ...

  3. BZOJ 4520 [Cqoi2016]K远点对(KD树)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=4520 [题目大意] 求K远点对距离 [题解] 修改估价函数为欧式上界估价,对每个点进行 ...

  4. PHP7新特性 What will be in PHP 7/PHPNG

    本文结合php官网和鸟哥相关文章总结: 官网:http://www.php7.ca/   https://wiki.php.net/phpng PHP7将在2015年10月正式发布,PHP7 ,将会是 ...

  5. Trie树 理解

    Trie树的理解 Trie树又称单词查找树,字典树,是哈希树的变种: 优点在于:最大限度地减少无谓的字符串比较,查询效率比哈希高: 缺点在于:空间消耗很大: 性质 其基本性质可以归纳为: 跟结点不包括 ...

  6. 批量替换url,指定内容不替换

    如果需要批量替换url的某几部分,当然是用正则了比如在CI框架中要把 <img src="pc/baidu/aa.jpg"> 替换成 <img src=" ...

  7. flash 跨域加载 二次加载

    var url2:String = "http://thirdapp0.qlogo.cn/qzopenapp/fa5d80ebf9fc89aaa1d7ddb0e1b861e58d77b409 ...

  8. druid数据源

    Druid是一个JDBC组件,它包括三部分:  DruidDriver 代理Driver,能够提供基于Filter-Chain模式的插件体系. DruidDataSource 高效可管理的数据库连接池 ...

  9. linux内核 asmlinkage宏

    http://blog.chinaunix.net/uid-7390305-id-2057287.html

  10. java转换emoji表情

    /** * @Description 将字符串中的emoji表情转换成可以在utf-8字符集数据库中保存的格式(表情占4个字节,需要utf8mb4字符集) * @param str * 待转换字符串 ...