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(安全控制)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章