Bigfile 用新的方式管理檔案,支援 HTTP,RPC 以及 FTP 協議

Michael001發表於2019-09-15

github: https://github.com/bigfile/bigfile

中文文件:《Bigfile 中文文件》

希望社群的朋友們喜歡,歡迎批評和指導

基本介紹

Bigfile 是使用 Golang 開發的一個檔案傳輸管理系統,支援通過 HTTP APIRPC 呼叫以及 FTP 客戶端管理檔案。它構建於許多優秀的開源專案之上,基於資料庫實現了一個虛擬的檔案組織系統,在 Bigfile 中您可以看到熟悉的資料夾和檔案,這種實現方式也是我們許可權控制的基礎。在底層,Bigfile 將任何檔案切分成 1 MB 的檔案塊儲存, 我們稱之為 Chunk ,每個 Chunk 依據 sha256 演算法計算 Hash 值相互區分,相同的 Chunk 只會被儲存一次。 我們用一張圖來展示 Bigfile 的設計架構圖:

image

Bigfile 是一個多應用系統,您可以建立多個應用,我們稱之為 APP ,每個 APP 都有自己的空間, APP 之間相互隔離,互不干擾,互不侵犯。為了安全起見,我們不希望把應用金鑰暴露給任何使用某個應用的人,因此每個 APP 應該建立具有某個許可權的 Token 去操作檔案。您可以限制 Token 僅僅能訪問某個目錄,設定失效時間,可用次數,只讀訪問以及限制使用 IP。我們也提供 HTTPSFTPS 以及帶有雙端驗證功能的 RPC 服務,操作簡單,使用方便,您唯一要做的使用我們提供的命令列工具生成證書,並且在啟動服務的時候指定證書即可。

下載二進位制包

進入 https://github.com/bigfile/bigfile/release... 頁面下載對應平臺最新的二進位制包。

MacOS

在 MacOS 上安裝,除了其他選擇之外,還可以通過 brew 直接安裝:

brew install bigfile/tap/bigfile

snapcraft

也可以通過 snapcraft 安裝:

sudo snap install --classic bigfile

deb/rpm:

release page 下載 .dep 或者 .rpm 檔案,通過命令 dpkg -i 或者 rpm -i 安裝

scoop

在 Windows 除了通過二進位制安裝,也可以通過 scoop 安裝:

$ scoop bucket add bigfile https://github.com/bigfile/bigfile-bucket.git
$ scoop install bigfile

從原始碼安裝

如果您是 Go 語言開發者,可以下載原始碼直接執行:

go get -u -v github.com/bigfile/bigfile

go run artisan/bigfile.go --version

或者您也可以直接安裝在本地,這將在您的 ${GOPATH}/bin 目錄下生成一個名為 artisan 的可執行檔案,Windows 平臺下將會生成 artisan.exe

go install -a -v github.com/bigfile/bigfile/artisan

或者可以直接在原始碼目錄下構建,這會在當前目錄下生成一個名為 bigfile 的可執行檔案,Windows 平臺下將會生成 bigfile.exe

go build artisan/bigfile.go

生成證書

生成證書的入口在 rpc 子命令下,但是可以用在任何你想用的地方:

bigfile rpc:make-cert

image

這條命令過後,會在主機上相應的目錄下生成 6 個證書檔案。以 ca 為字首的表示證書機構,只有證書機構才具有資質進行簽發證書,我們生成的 ca 證書是自簽名證書,自簽名證書一般不被系統所信任,不過你可以將它加到系統的可信任證書庫中。以 server 為字首的表示伺服器證書,伺服器證書可以新增可信任 IP,通過引數 --server-cert-ips 指定。以 client 為字首的用於客戶端,這個主要用在 RPC 服務中實現雙端驗證。.pem 為字尾的表示經過 PEM 編碼的證書檔案,.key 為字尾的表示證書金鑰。

啟動 HTTP Server

bigfile http:start --cert-file server.pem --cert-key server.key

image

啟動 RPC Server

bigfile rpc:start --ca-cert ca.pem --server-cert server.pem --server-key server.key

image

啟動 FTP Server

bigfile ftp:start --tls-enable --cert-file server.pem --key-file server.key

image

好好寫程式碼,娶個寶寶回家。

相關文章