seaweedfs搭建与使用

安装

  • 从github[https://github.com/seaweedfs/seaweedfs/releases]中获取seaweedfs对应操作系统的可执行文件weed,根据自己服务器类型选择不同的安装包

    tar -zxvf linux_amd64.tar.gz //解压后得到名为weed的可执行文件
    
  • 执行以下命令以启动服务

    ./weed master -mdir="/home/fy/seaweedfs/weed_data"
    
  • 创建文件夹以供volume服务使用

mkdir FileVolume1
mkdir FileVolume2

./weed volume -dir="/home/fy/seaweedfs/FileVolume1" -max=1000 -mserver="localhost:9333" -port=10001
./weed volume -dir="/home/fy/seaweedfs/FileVolume2" -max=1000 -mserver="localhost:9333" -port=10002

启动两个volume服务

  • 启动完master和volume服务之后,我们就可以使用seaweedfs来保存和访问文件了。

  • 上传文件

  // 第一种,直接上传
  curl -F file=@/home/fy/a.txt http://127.0.0.1:9333/submit
  //第二种 申请一个fid
  curl http://localhost:9333/dir/assign //会返回一个json文件,使用fid字段作为下面路径
  curl -F file=@/home/fy/a.txt http://127.0.0.1:9333/3,01637037d6

上传后返回数据

  {
    "eTag": "2fa474ce",
    "fid": "5,090f487535",
    "fileName": "a.txt",
    "fileUrl": "192.168.1.80:10001/5,090f487535",
    "size": 10116
  }
  • 下载文件
  curl http://192.168.1.80:10001/5,090f487535
  • 删除文件
curl -X DELETE http://127.0.0.1:9333/3,01637037d6

启用filer,可以清晰看到文件保存路径

  • 生成filer对应的配置文件,会在当前目录生成一个filer.toml文件
./weed scaffold -config=filer -output=.
//创建文件夹,用于储存filer数据
mkdir filer_data
//修改filer.toml配置
enabled = true
dir = "/home/fy/seaweedfs/filer_data"

启动,并且指定日志输出位置,同样需创建日志目录log

sudo ./weed filer -port=8888 -master=192.168.1.80:9333 -ip=192.168.1.80 > /home/fy/seaweedfs/filer_data/log/filer.log
  • 上传文件
curl -F "filename=@/home/fy/seaweedfs/t.txt" "192.168.1.80:8888/test/file/"


也可以使用postman上传

需要注意的是,请求的URL不带‘/’,则最后的路径为文件名,带‘/’则是文件夹

  • 下载文件
curl http://192.168.1.80:8888/mytest/WechatIMG534.png

直接请求对应的目录地址即可

posted @ 2023-07-07 17:46  黑曼巴后仰  阅读(1802)  评论(0编辑  收藏  举报