SeaweedFS是基於go語言開發的高可用文件存儲系統,主要特性
1、成存儲上億的文件(最終受制於你的硬盤大小)
2、速度快,內存占用小
上手使用比fastDFS要簡單很多,自帶Rest API。
SaaWeeDFS作為對象存儲庫來有效地處理小文件。不是管理中央主機中的所有文件元數據,中央主機只管理文件卷,它允許這些卷服務器管理文件和它們的元數據。
這減輕了來自中央主機的並發壓力,並將文件元數據擴展到卷服務器,允許更快的文件訪問(僅一個磁盤讀取操作)。
每個文件的元數據只有40字節的磁盤存儲開銷。
訪問地址:https://github.com/chrislusf/seaweedfs
一、啟動服務
SeaweedFS服務端啟動順序:先啟動master,再啟動卷volume
1、啟動master
weed master
2、掛載卷volume
weed volume -dir="D:\data1" -max=500 -mserver="localhost:9333" -port=9331 & weed volume -dir="D:\data2" -max=500 -mserver="localhost:9333" -port=9332 &
1、 -dir表示該DataNode數據存儲的目錄;
2、-max表示volume個數最大值;
3、-mserver表示Master地址;
4、-port該DataNode監聽的端口;
啟動后可訪問瀏覽器:
出現以下界面:
二、上傳文件
1、上傳一個文件(命令行形式)
weed upload -collection myfiles -master=localhost:9333 XXX.txt weed upload -collection myfiles -master=localhost:9333 muc.png weed upload -collection myfiles -master=localhost:9333 王大昕.jpg
2、還可以上傳整個目錄,比如
weed upload -master=localhost:9333 -dir=one_directory -include=*.pdf
3、上傳完會返回一個json結果,記錄了文件名、下載地址、fid信息(文件id)
[{"fileName":"XXX.txt","fileUrl":"127.0.0.1:9331/4,012d48fa67","fid":"4,012d48fa 67","size":31}] [{"fileName":"apps.png","fileUrl":"127.0.0.1:9332/6,087691dca8","fid":"6,087691d ca8","size":253469}]
三、下載文件
weed download -server=localhost:9333 -dir=one_directory fid1 [fid2 fid3]
-dir指定要下載到本地的路徑,fid就是文件id
下載實際文件
weed download -server="localhost:9333" -dir="D:\data3" 4,012d48fa67
四、刪除文件
curl -X DELETE http://127.0.0.1:9331/4,012d48fa67
五、在線讀文件
http://127.0.0.1:9331/4,012d48fa67
或者
http://127.0.0.1:9331/4,012d48fa67.txt
SeaweedFS對圖片有很好的支持,可以指定圖片顯示的長度、寬度、模式,如:
http://localhost:8080/3/01637037d6.jpg?height=200&width=200
http://localhost:8080/3/01637037d6.jpg?height=200&width=200&mode=fit
http://localhost:8080/3/01637037d6.jpg?height=200&width=200&mode=fill
六、SeaweedFS命令集:
- benchmark
- backup
- compact
- filer
- fix
- server
- master
- filer
- s3
- upload
- download
- shell
- version
- volume
- export
- mount