GridFS For MongoDB 功能验证

目录

第1章 文档目标... 3

第2章 前期准备... 3

2.1 Windows版本安装过程... 3

2.1.1 版本下载与安装... 3

2.1.2 创建数据库... 4

2.1.3 创建用户并分配权限... 5

2.2 Linux版本安装过程... 5

2.2.1 版本下载与安装... 5

2.2.2 创建数据库... 6

2.2.3 创建用户并分配权限... 7

第3章 GridFS接口功能验证... 8

3.1 连接GridFS(安全控制)... 8

3.2 向GridFS添加数据... 8

3.3 从GridFS读取文件... 9

3.4 删除文件... 10

3.5 断点续传... 11

3.6 安全控制... 11

 

 

  1. 文档目

验证通过GridFS提供的API访问GridFS,并对GridFS提供的功能进行验证

  1. 前期准备
  1. MongoDB:GridFS底层依然是MongoDB存储,因此需要先安装好MongoDB数据库,MongoDB数据库可以从官网下载,目前最新版本是V3.4.2

下载地址:https://www.mongodb.com/download-center

  1. Java驱动包:目前最新版本也是3.4.2,可从Maven中央仓库下载:mongo-java-driver-3.4.2.jar
    1. Windows版本安装过程
      1. 版本下载与安装
  2. MongoDB的windows版本,不支持win32平台;
  3. 安装包选择了包含SSL的版本:

mongodb-win32-x86_64-2008plus-ssl-3.4.2-signed.msi

  1. 提供msi格式,双击直接安装即可;
  2. 这里安装目录为:D:\Program Files\MongoDB。安装后如下图所示:

      1. 创建数据库
  1. 创建一个目录,作为数据存储目录:D:\Program Files\MongoDB\Server\dbData
  2. 打开命令行,切换到bin目录下,执行命令,启动MongoDB;

mongod --dbpath "D:\Program Files\MongoDB\Server\dbData"

  1. 打开另外命令行,切换到bin目录下,输入“mongo“,启动shell程序
  2. 输入命令“use udetest”切换到udetest数据库(此时并没有真正创建)

  1. 添加一条记录:db.udetest.insert({"name": "udetest"}),数据库创建成功:

      1. 创建用户并分配权限

Mongodb默认启动是不带认证,也没有账号,只要能连接上服务就可以对数据库进行各种操作,为了保证数据库安全,需要添加用户,并开启认证

  1. 执行命令,创建用户

db.createUser({ user:"udetest",pwd: "udetest", roles: [ "readWrite", "dbAdmin" ] })

 

上面的命令执行后,在数据库udetest上,创建一个用户(用户名udetest,密码udetest),这个用户用于读写和管理权限。

  1. 在MongoDB的命令行窗口,执行Ctrl + C,停止MongoDB;
  2. 启动MongoDB,添加auth参数,开启认证:

mongod --dbpath "D:\Program Files\MongoDB\Server\dbData"  --auth

这样就必须通过用户名和密码认证,才能连接到数据库了

    1. Linux版本安装过程
      1. 版本下载与安装
  1. MongoDB的linux版本,不支持win32平台;
  2. 由于验证时的操作系统SSL版本过低,也无法通过联网方式更新,故选择了不包含SSL的版本,安装包是.tgz格式:

mongodb-linux-x86_64-3.4.2.tgz

  1. 将压缩包拷贝到心痛目录,运行命令解压:

tar –zxvf ./ mongodb-linux-x86_64-3.4.2.tgz

  1. 运行chmod命令授权

chmod a+x ./mongodb-linux-x86_64-3.4.2/ -R

 

      1. 创建数据库
  1. 创建一个目录,作为数据存储目录:dbData
  2. 打开命令行,切换到bin目录下,执行命令,启动MongoDB;

./mongod --dbpath /home/ude/GridFS/dbData/

  1. 打开另外命令行,切换到bin目录下,输入“mongo“,启动shell程序
  2. 输入命令“use udetest”切换到udetest数据库(此时并没有真正创建)

  1. 添加一条记录:db.udetest.insert({“name”:“udetest”}),数据库创建成功:

      1. 创建用户并分配权限

Mongodb默认启动是不带认证,也没有账号,只要能连接上服务就可以对数据库进行各种操作,为了保证数据库安全,需要添加用户,并开启认证

  1. 执行命令,创建用户

db.createUser(

   {

    user: "udetest",

    pwd: "udetest",

    roles: [ "readWrite", "dbAdmin" ]

   }

)

上面的命令执行后,在数据库udetest上,创建一个用户(用户名udetest,密码udetest),这个用户用于读写和管理权限。

  1. 在MongoDB的命令行窗口,执行Ctrl + C,停止MongoDB;
  2. 启动MongoDB,添加auth参数,开启认证:

./mongod --dbpath /home/ude/GridFS/dbData/ --auth

这样就必须通过用户名和密码认证,才能连接到数据库了

 

  1. GridFS接口功能验证
    1. 连接GridFS(安全控制)

由于我们已经开启了MongoDB的认证,因此在连接GridFS时,必须提供认证信息,如下图所示:

    1. 向GridFS添加数据

关键代码如下图所示:

  1. 添加数据时,需要先构造查询条件查询;
  2. 查询不存在,则创建一个文件,支持的类型包括byte[],InputStream,以及File对象;
  3. 调用save方法,保存文件;
  4. 支持获取保存后文件的MD5,可以与保存前文件MD5做对比
    1. 从GridFS读取文件

关键代码如下图所示:

  1. 获取数据时,需要先构造查询条件查询;
  2. 查询存在,通过writeTo方法,将数据写入到文件;
  3. writeTo方法,支持将数据写入到流中
    1. 删除文件

关键代码如下图所示:

  1. 通过文件名称查询,然后删除文件
    1. 断点续传

1、从公开的GridFS接口看,没有直接提供断点续传功能

2、GridFS底层是MongoDB存储,也采用了多块存储的方式,因此可以通过扩展驱动的方式,支持断点续传:需要进一步验证后,才能估计工作量。

    1. 安全控制

由于GridFS底层采用MongoDB存储,因此GridFS的安全控制是可以通过MongoDB实现的。具体请参考连接GridFS(安全控制)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值