SeaWeedfs 部署+入门
一、下载
官网下载地址:https://github.com/chrislusf/seaweedfs/releases
我们选择当前最新版本:2.11
https://github.com/chrislusf/seaweedfs/releases/download/2.11/darwin_amd64.tar.gz
二、安装
centos 下可通过 : cat /etc/redhat-release 命令查看
安装环境:CentOS Linux release 7.2.1511 (Core)
centos 下可通过 : uname -a
系统版本:Linux bigdata 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
linux 命令行下载
wget https://github.com/chrislusf/seaweedfs/releases/download/2.11/linux_amd64.tar.gz
不过最近github下载速度让人惊奇的慢,这种下载速度让人崩溃,推荐加速网站
https://shrill-pond-3e81.hunsh.workers.dev/
下载后
解压:
tar -zxvf linux_amd64.tar.gz
启动:
./weed master
生产环境使用进程守护+写权限IP白名单
nohup ./weed master whiteList=127.0.0.1,192.168.36.88
4.2 添加多个volume存储节点目录
首先在CentOS上建立Volume存储节点的文件夹,我这边测试创建了两个节点
./weed volume -dir="/home/seaweedfs/FileVolume1" -max=1000 -mserver="localhost:9333" -port=10001
./weed volume -dir="/home/seaweedfs/FileVolume2" -max=1000 -mserver="localhost:9333" -port=10002
因为我这边测试的是直接用Xshell启动的,所以需要另开一个终端shell选项卡(后面可以安装为Linux服务)
生产环境使用进程守护+写权限IP白名单
nohup ./weed volume -dir="/home/seaweedfs/FileVolume1" -max=1000 -mserver="localhost:9333" -port=10001 whiteList=127.0.0.1,192.168.36.88
nohup ./weed volume -dir="/home/seaweedfs/FileVolume2" -max=1000 -mserver="localhost:9333" -port=10002 whiteList=127.0.0.1,192.168.36.88
4.3 启动第一个节点
4.4启动第二个节点
需要再开一个Shell终端选项卡
浏览器打开本地IP+9333端口,本地就直接打开192.168.36.88:9333,Topology下面就有了刚加的两个数据节点
三、上文文件
文件目录:
单个文件上传
./weed upload -collection myfiles -master=localhost:9333 ./hhf/123.jpg
返回json
[{"fileName":"123.jpg","fileUrl":"192.168.36.88:10001/1,013153e295","fid":"1,013153e295","size":112236}]
json里说明了:文件名、访问地址、fid(文件id)、和文件大小
图片可正常访问
整个文件目录上传
上传整个目录里以 .jpg结尾的文件
./weed upload -master=localhost:9333 -dir=./hhf -include=*.jpg
返回json
[{"fileName":"123.jpg","fileUrl":"192.168.36.88:10002/11,04b2a15999","fid":"11,04b2a15999","size":112236}]
[{"fileName":"456.jpg","fileUrl":"192.168.36.88:10001/13,05a9653ab4","fid":"13,05a9653ab4","size":62436}]
json结果记录了文件名、下载地址、fid信息(文件id)
上传整个目录里的所有文件
./weed upload -master=localhost:9333 -dir=./hhf -include=*.*
返回json
[{"fileName":"123.jpg","fileUrl":"192.168.36.88:10002/12,06da93d5ee","fid":"12,06da93d5ee","size":112236}] [{"fileName":"456.jpg","fileUrl":"192.168.36.88:10002/11,0737134369","fid":"11,0737134369","size":62436}] [{"fileName":"hello.txt","fileUrl":"192.168.36.88:10002/12,080adc4548","fid":"12,080adc4548","size":8086}] [{"fileName":"test.md","fileUrl":"192.168.36.88:10001/8,09d36622b4","fid":"8,09d36622b4"}]
四、下载文件
命令:weed download -server=localhost:9333 -dir=one_directory fid1 [fid2 fid3]
-dir指定要下载到本地的路径,fid就是文件id
下载单个文件
./weed download -server="localhost:9333" -dir="/home/seaweedfs/hhf_down" 8,09d36622b4
/home/seaweedfs/hhf_down :我想要下载到本地的目录
8,09d36622b4 上面上传时 json里返回的fid(文件id)
下载多个文件
./weed download -server="localhost:9333" -dir="/home/seaweedfs/hhf_down" 12,06da93d5ee 11,0737134369
多个fid 之间用空格隔开就行了
五、删除文件
curl -X DELETE http://127.0.0.1:9333/12,06da93d5ee
六、在线读文件
http://192.168.36.88:9333/7,10060da42a 或者 http://192.168.36.88:9333/7,10060da42a.jpg
SeaweedFS对图片有很好的支持,可以指定图片显示的长度、宽度、模式,如:
http://192.168.36.88:9333/7,10060da42a.jpg?height=200&width=200
http://192.168.36.88:9333/7,10060da42a.jpg?height=200&width=200&mode=fit
http://192.168.36.88:9333/7,10060da42a.jpg?height=200&width=200&mode=fill
七、SeaweedFS命令集:
-
benchmark
-
backup
-
compact
-
filer
-
fix
-
server
-
master
-
filer
-
s3
-
upload
-
download
-
shell
-
version
-
volume
-
export
-
mount