github: https://github.com/bigfile/bigfile
中文文件:《Bigfile 中文文件》
希望社群的朋友們喜歡,歡迎批評和指導
基本介紹
Bigfile
是使用 Golang 開發的一個檔案傳輸管理系統,支援通過 HTTP API
,RPC
呼叫以及 FTP
客戶端管理檔案。它構建於許多優秀的開源專案之上,基於資料庫實現了一個虛擬的檔案組織系統,在 Bigfile
中您可以看到熟悉的資料夾和檔案,這種實現方式也是我們許可權控制的基礎。在底層,Bigfile
將任何檔案切分成 1 MB
的檔案塊儲存, 我們稱之為 Chunk ,每個 Chunk
依據 sha256
演算法計算 Hash 值相互區分,相同的 Chunk
只會被儲存一次。 我們用一張圖來展示 Bigfile
的設計架構圖:
Bigfile
是一個多應用系統,您可以建立多個應用,我們稱之為 APP ,每個 APP
都有自己的空間, APP
之間相互隔離,互不干擾,互不侵犯。為了安全起見,我們不希望把應用金鑰暴露給任何使用某個應用的人,因此每個 APP
應該建立具有某個許可權的 Token 去操作檔案。您可以限制 Token
僅僅能訪問某個目錄,設定失效時間,可用次數,只讀訪問以及限制使用 IP。我們也提供 HTTPS
,FTPS
以及帶有雙端驗證功能的 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
這條命令過後,會在主機上相應的目錄下生成 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
啟動 RPC Server
bigfile rpc:start --ca-cert ca.pem --server-cert server.pem --server-key server.key
啟動 FTP Server
bigfile ftp:start --tls-enable --cert-file server.pem --key-file server.key