GridFS 介绍


  • 註冊用戶

    1. GridFS 简介

    • GridFS 是基于 MongoDB 文档之上的轻量级文件存储规范,一种在 MongoDB 中存储大二进制文件的机制,相关功能由客户端驱动或工具来完成。
    • GridFS 可以将大文件分成很多块,每块作为一个单独的文档存储,再生成一个单独用来存储块信息以及文件元数据的文档,通过这种方式来实现存储大文件。

    2. GridFS 使用目的

    • 在 MongoDB 中使用 GridFS 无需独立文件存储架构,可以达到简化需求的目的。
    • GridFS 会直接利用已经创建好的复制或分片,很容易实现文件存储、故障恢复以及扩展。
    • GridFS 可以在同一目录下存放大量的文件,因此可以避免用户上传文件时的很多问题。
    • GridFS 不会产生磁盘碎片,可以减少很多对磁盘的伤害。

    3. 使用GridFS:mongofiles

    • 利用 mongofiles 实例程序来使用 GridFS 是最简单的方式,mongofiles 存放于 \bin\目录中,可以用来在 GridFS 中上传、下载、列示、查找、删除文件。
    • 与其他命令行工具一样,执行 mongofiles --help 可以查看帮助信息,了解具体可用选项。
    <code>D:\mongodb\bin>mongofiles --help
    Usage: mongofiles <options> <command> <filename or _id>
    Manipulate gridfs files using the command line.
    Possible commands include:
            list      - list all files; 'filename' is an optional prefix which listed filenames must begin with
            search    - search all files; 'filename' is a substring which listed filenames must contain
            put       - add a file with filename 'filename'
            get       - get a file with filename 'filename'
            get_id    - get a file with the given '_id'
            delete    - delete all files with filename 'filename'
            delete_id - delete a file with the given '_id'
    See http://docs.mongodb.org/manual/reference/program/mongofiles/ for more information.
    </code>
    • 一些使用 mongofiles 简单操作的代码示例:
    <code>//向本地目录写入文件
    D:\>cd D:\mongodb\bin
    D:\mongodb\bin>echo "MongoDB_GridFS" > D:\mongodb\data\GridFS\GridFS_Test.txt
    //查看文件内容与输入一致
    D:\mongodb\bin>more D:\mongodb\data\GridFS\GridFS_Test.txt
    "MongoDB_GridFS"
    //将文件上传到 GridFS
    D:\mongodb\bin>mongofiles put D:\mongodb\data\GridFS\GridFS_Test.txt
    2016-11-23T14:02:28.883+0800    connected to: localhost
    added file: D:\mongodb\data\GridFS\GridFS_Test.txt
    //查看文件目录
    D:\mongodb\bin>mongofiles list
    2016-11-23T14:03:59.049+0800    connected to: localhost
    D:\mongodb\data\GridFS\GridFS_Test.txt  19
    //删除上传成功后的本地文件
    D:\mongodb\bin>del D:\mongodb\data\GridFS\GridFS_Test.txt
    //直接查看文件内容如果失败表示文件已经不存在
    D:\mongodb\bin>more D:\mongodb\data\GridFS\GridFS_Test.txt
    Cannot access file D:\mongodb\data\GridFS\GridFS_Test.txt
    //将上传的文件下载到本地目录
    D:\mongodb\bin>mongofiles get D:\mongodb\data\GridFS\GridFS_Test.txt
    2016-11-23T14:13:37.541+0800    connected to: localhost
    finished writing to D:\mongodb\data\GridFS\GridFS_Test.txt
    //查看文件内容成功
    D:\mongodb\bin>more D:\mongodb\data\GridFS\GridFS_Test.txt
    "MongoDB_GridFS"
    //删除GridFS中的文件
    D:\mongodb\bin>mongofiles delete D:\mongodb\data\GridFS\GridFS_Test.txt
    2016-11-23T15:58:55.545+0800    connected to: localhost
    successfully deleted all instances of 'D:\mongodb\data\GridFS\GridFS_Test.txt' from GridFS
    //查询文件已经不存在
    D:\mongodb\bin>mongofiles list
    2016-11-23T16:00:15.130+0800    connected to: localhost
    </code>

  • Lv 1

    補充:

    Default GridFS limits chunk size to 255k


登录后回复
 

与 萌阔论坛 的连接断开,我们正在尝试重连,请耐心等待