目前篩選出兩個一樣是 GoLang 實現的文件系統,今天仔細調研一下html
minio | seaweedFS |
---|---|
它最適合存儲非結構化數據,如照片,視頻,日誌文件,備份和容器/ VM映像。對象的大小能夠從幾KB到最大5TB。 | SeaweedFS是一個簡單且高度可擴展的分佈式文件系統,兩個目標: 一、存儲數十億的文件! 二、查看檔案快! |
minio、seaweedFS 均爲 goLang 編寫,均可以交叉編譯爲「全平臺」支持,都提供了官方 「docker」 鏡像java
seaweedFS 對外供給 REST 接口 , 實現主要參考了 facebook 的論文: 《Finding a needle in Haystack: Facebook’s photo storage》nginx
注:此集羣爲單機多租戶,非 「swarm」或「k8s」意義上的集羣git
登陸須要的 公鑰、私鑰在 docker-compose 查看登陸祕鑰github
能夠考慮將 COMPANYID 做爲 「桶」... 圖片、文檔、html 做爲 「對象」web
簡單跑了一下,可是至少是 JDK8+ ,7無法編譯(最新的jar是8+)docker
這裏要注意 ! 若是 openResty 直接代理 minio 的 9000 端口,那麼須要保證這個桶是公開的,不然須要寫 LUA 腳本作驗證 「雖然目前也沒有存儲什麼敏感數據,可是這點早晚要考慮」異步
我使用 java client + 私鑰 測試的,讀對象只須要「桶」「對象名」兩個參數便可。分佈式
成功上傳
web 端查看結果
minio 客戶端 :mc 能夠很是可靠的快速的大規模遷移數據
下章整理髮布 《分佈式文件系統遷移的經驗》
相比之下沒有網頁上傳的功能,測試同窗就沒法爲研發分擔部分壓力。
SeaweedFs 的 wiki 分幾塊:
restFull API、文件管理、配置、異步複製、操做(備份、k8s部署)、安全
和 SeaweedFs 共同對比,沒有發現什麼剛需的功能點必需要選擇 SeaweedFs 的,從「社區」「開發實力」 感受仍是 MINIO 從易用性來講應該比 SeaweedFs 更適合咱們,不管是服務仍是工具也更全面SeaweedFs 雖然是國人寫的項目,但對國人也沒有很友好,Issues 處理及時率較低,不管是企業使用,仍是我的使用,我都偏向於推薦 Minio。