寻求miniO的替代品-seaweedFS

17 5.2~6.6 分钟 2321

终于还是到了这一天

  1. 我一直在NAS上部署miniO服务来作为S3存储,主要就是给思源笔记用;

  2. 去年miniO不知为啥抽风,砍了一堆代码,导致后台管理界面无法直接创建bucket,对小白用户非常不友好,所以我还专门写了一篇部署miniO的文章,教大家将部署镜像停留在最后还能使用后台管理的版本;

  3. 昨天看到miniO宣布此项目将停止维护,具体可以看小众软件的介绍,虽然已经部署的旧版本仍然可以使用,但是时候寻找新的替代品了。

替代方案

问了一下AI,给了很多答案,简单比较了一下,最终我确定使用seaweedFS服务,这个服务比较轻量,速度快,除了支持s3外还支持webdav,还有可视化的filer文件系统界面,比较直观,最重要的是可以使用docker compose方便的在NAS上进行部署。

比较奇怪的是,在docker hub上是有官方镜像,但文档里并没有部署方法,在gemini但帮助下,我成功部署完成同时也将思源笔记的数据都转移到了seaweedFS中。

部署

使用docker compose部署非常简单,yaml文件如下:

services:
  seaweedfs:
    image: chrislusf/seaweedfs:latest
    container_name: seaweedfs
    restart: always
    ports:
      - "8333:8333" # S3 API (给思源笔记)
      - "9333:9333" # Master 后台 (监控状态)
      - "8888:8888" # Filer 界面 (网页管理文件)
      - "7333:7333" # WebDAV 端口
    volumes:
      - ./data:/data
      - ./config/s3.json:/etc/seaweedfs/s3.json:ro
    # 关键点:-filer 必须开启,它是 S3 和 WebDAV 的元数据核心
    command: 'server -dir=/data -s3 -s3.config=/etc/seaweedfs/s3.json -s3.port=8333 -filer -webdav -webdav.port=7333'
 

其中./data 对应NAS上的文件夹,而要使用S3服务还要创建一个名为s3.json 的配置文件,修改上述yaml文件将文件夹与配置文件做好映射就行了。

s3.json 配置文件如下:

{
  "identities": [
    {
      "name": "SiYuanAdmin",
      "credentials": [
        {
          "accessKey": "SY2026AdminX",
          "secretKey": "a1b2c3d4e5f6g7h8i9j10k11l12m13n14o15p16"
        }
      ],
      "actions": ["Read", "Write", "List", "Tagging", "Admin"]
    }
  ]
}

修改其中的nameaccesskey 以及 secretkey 对应内容即可,name 随意,accesskeysecretkey 最好使用大小写字母和数字不要使用符号。

上面这些都设置好后就可以部署了。

主要功能

  1. 按照上面的配置文件部署好以后,http://your-IP:9333 地址对应的是一个后台监控页面,显示服务运行的一些情况;

  2. http://your-IP:8888对应的是filer界面,在这里就可以直接创建文件夹,操作文件等,但是如果跟我一样是给思源笔记用的话,这里并不用手动创建,往下看。

思源笔记里的设置

  1. 最好先将思源笔记的内容先备份到本地;

  2. 假定原来已经使用s3进行同步了,这里就非常简单,只要修改服务器的配置即可,其中:
    endpointhttp://your-IP:8333
    Accesskeysecretkeys3.json配置文件里你设置的内容
    bucket 随意填写,因为该数据库并没有使用过,所以第一次填写的名字就是思源笔记数据保存的文件夹名称,seaweedFS会自动创建这个文件夹,以后在其他需要同步的设备上,此处填写这个文件夹名字就可以了。
    其余什么都不用改,退出设置后点一下同步,客户端上的数据就同步到了服务器中,其他客户端也依次设置好就行了。

  3. 如果想验证一下,可以打开网址http://your-IP:8888 就可以看到文件系统里已经创建了buckets文件夹,其中就是你的思源笔记同步的文件夹,例如我上一步创建的siyuan

祝大家玩的开心❤️❤️