1. 程式人生 > >GridFS For MongoDB 功能驗證

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