Docker搭建Minio服务
Obsidian目前可以利用Remotely save实现同步,RS是支持s3协议的。

缘起

Obsidian最近的编辑器体验已经很不错了,所有计划把本地的写作软件转移到Ob上来,我是有多平台的同步需求的,但是选择官方的确实有点贵了,那么其他的选择目前来看有2种比较好的方案跨平台。

  • Icloud+working copy
    • 苹果全家桶使用icloud同步,然后手机上利用捷径和working copy来用git同步到服务器,PC端使用git来同步。
  • 利用Remotely Save插件跨平台
    • 全平台都可以使用
    • 支持多种存储方式
    • 只支持同步,不支持备份,有备份的需求。

存储方式选择

目前Remotely Save支持onedrivedropboxwebdavs3

  • OneDrive可以使用,国内可以不用fq就能使用,不过比较慢,推荐。
  • Dropbox很好用,不过需要fq
  • Webdav一种过时的协议,目前国内支持webdav的很少,只有坚果云,不过坚果云对于请求做了限制,很容易触发限制。
  • S3,亚马逊的s3协议,推荐。国内的腾讯云,阿里云,华为云等的对象储存都支持这一协议,如果省心建议用这种方式,自带了版本控制,需要花钱不多。

我自己有台轻量的服务器,同时也有图床的需求,而且同时还有几个人想一起用,所以就想到了搭建一个Minio服务来使用S3协议同步,同时也可以开启版本控制功能。

docker搭建minio服务

  1. Minio服务需要映射两个文件夹dataconfig
$ mkdir -p ~/minio/config
$ mkdir -p ~/minio/data
  1. docker命令,映射2个端口,9000端口用于oss访问,9090用于web端管理

MINIO_ACCESS_KEY:管理员账号
MINIO_SECRET_KEY:管理员密码

docker run -p 9000:9000 -p 9090:9090 \
     --net=host \
     --name minio \
     -d --restart=always \
     -e "MINIO_ACCESS_KEY=admin" \
     -e "MINIO_SECRET_KEY=p8HhVAqjp" \
     -v ~/minio/data:/data \
     -v ~/minio/config:/root/.minio \
     minio/minio server \
     /data --console-address ":9090" -address ":9000"
  1. Nginx 反代2个端口

最好能配合ssl

  • https://minio.example.com反代http://127.0.0.1:9090作为web管理
  • https://oss.example.com反代http://127.0.0.1:9000作为oss的url

创建用户和桶

  1. Web管理

https://minio.example.com输入管理员账号和密码

  1. 创建组

Identity->Groups->Create Groups->名字任意,权限选择consoleAdminreadwrite
create-group.png

set-policoes.png
  1. 创建用户

Identity->Users->Create Users->名字任意,权限选择consoleAdminreadwrite,组选择刚刚创建的。
create-user.png

  1. 创建aksk

Identity->Service Accounts->Create Service Account->Create->下载这个文件
create-ak.png

文件内容如下

{
    "url": "http://10.0.8.15:9000",
    "accessKey": "sssssssssJ",
    "secretKey": "EFsssssEppJddddddq5AWD",
    "api": "s3v4",
    "path": "auto"
}
  1. 创建桶

Buckets->Creaete Bucket->建议勾选版本控制以便于恢复版本,防止误删。
create-bucket.png

**第一项就是版本控制 **

  1. 配置区域

这个不知道有没有用,不过一般配置s3协议的时候都有这个选项,所以还是配置一下了。
configurations->region->Server Location我写的cn-guangzhou,保存后需要重启一下实例,会提醒重启即可。
reset-region.png

Obsidian上的Remotely Save设置

直接看图
remotely-save.png

有几点需要注意

  • 服务地址:https://oss.example.com/上面nginx反代的9000端口,注意最后有个/
  • 区域:cn-guangzhou
  • Access Key ID:下载的文件中的accessKey的值
  • Secret Access Key:下载文件中的secretKey的值
  • 存储桶的名字:上面创建桶的名字
  • S3 URL style:Path Style

最后检查一下,没有问题可以同步看一看文件是否上传。

Enjoy


最后修改于 2022-07-05