寻求miniO的替代品-seaweedFS
终于还是到了这一天
我一直在NAS上部署miniO服务来作为S3存储,主要就是给思源笔记用;
去年miniO不知为啥抽风,砍了一堆代码,导致后台管理界面无法直接创建bucket,对小白用户非常不友好,所以我还专门写了一篇部署miniO的文章,教大家将部署镜像停留在最后还能使用后台管理的版本;
昨天看到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"]
}
]
}
修改其中的name ,accesskey 以及 secretkey 对应内容即可,name 随意,accesskey 和 secretkey 最好使用大小写字母和数字不要使用符号。
上面这些都设置好后就可以部署了。
主要功能
按照上面的配置文件部署好以后,
http://your-IP:9333地址对应的是一个后台监控页面,显示服务运行的一些情况;http://your-IP:8888对应的是filer界面,在这里就可以直接创建文件夹,操作文件等,但是如果跟我一样是给思源笔记用的话,这里并不用手动创建,往下看。
思源笔记里的设置
最好先将思源笔记的内容先备份到本地;
假定原来已经使用s3进行同步了,这里就非常简单,只要修改服务器的配置即可,其中:
endpoint为http://your-IP:8333Accesskey、secretkey为s3.json配置文件里你设置的内容bucket随意填写,因为该数据库并没有使用过,所以第一次填写的名字就是思源笔记数据保存的文件夹名称,seaweedFS会自动创建这个文件夹,以后在其他需要同步的设备上,此处填写这个文件夹名字就可以了。
其余什么都不用改,退出设置后点一下同步,客户端上的数据就同步到了服务器中,其他客户端也依次设置好就行了。
如果想验证一下,可以打开网址
http://your-IP:8888就可以看到文件系统里已经创建了buckets文件夹,其中就是你的思源笔记同步的文件夹,例如我上一步创建的siyuan。
