之前写markdown图片存在本地文件夹,时间一长就会造成文件夹十分臃肿,很多空间都是图片占了,同步起来很费时,而且传到在线平台时不会自动上传本地图片,还是要手动一张一张处理上传,但是如果存在云端,本地只要存一个url就可以预览,而且各个平台也能兼容,而不是显示一个毫无意义的本地路径。
于是我尝试将笔记的图片上传到云端,最好是粘贴的时候就可以自动上传。其实像我用的typora和obsidian都有这个功能,但是需要有OSS(对象存储),阿里云这些云厂商都有卖。但是,我有一台自己的服务器还花钱买OSS吗?
于是我就寻找开源的OSS平台搭建,然后就找到了minio,功能十分强大,并且使用docker搭建步骤十分简单。
首先需要有一台云服务器/VPS,阿里云腾讯云这些也行,没有的可以看我推荐国外性价比比较高的:https://www.stmoonar.me/?p=6
然后安装docker
curl -fsSL https://get.docker.com | bash -s docker
接着创建一个目录用来存放minio的数据,可以根据自己需要选择放在哪:
mkdir -p ~/minio/data
这样就可以直接启动了容器了
docker run \
-p 9000:9000 \
-p 9001:9001 \
--name minio \
-v ~/minio/data:/data \
-e "MINIO_ROOT_USER=ROOTNAME" \
-e "MINIO_ROOT_PASSWORD=CHANGEME123" \
quay.io/minio/minio server /data --console-address ":9001"
-p 9000:9000 -p 9001:9001
这是将容器端口映射到服务器端口,前一个是服务后台的端口,后一个是客户端也就是api接口访问的端口。
-v ~/minio/data:/data
这个如果和你创建的目录不一样就改一下。
-e "MINIO\_ACCESS\_KEY=minioadmin"
用户名,-e "MINIO\_SECRET\_KEY=minioadmin"
密码,这两个地方自己手动修改一下。
上一步完成我们就可以直接访问了,使用ip:9000
就可以进入后台,输入刚刚设置的用户名和密码登录。
登录之后创建Buckets、创建Access Keys这些操作就和普通的OSS后台差不多了,可以手动上传文件。
现在还需要在一个客户端软件(在这里是我们的markdown笔记软件)填写好这些配置就可以不用到浏览器来上传文件了。
现在返回的图片链接都是ip+port作为host,如果觉得难看想用自己的域名的话,就需要在nginx配置文件里面设置反向代理,将DNS解析来的域名代理到9001端口。
还可以进一步配置ssl证书,这样就可以使用https协议访问存储的文件了。