minio对象存储搭建（docker）

之前写 markdown 图片存在本地文件夹，时间一长就会造成文件夹十分臃肿，很多空间都是图片占了，同步起来很费时，而且传到在线平台时不会自动上传本地图片，还是要手动一张一张处理上传，但是如果存在云端，本地只要存一个 url 就可以预览，而且各个平台也能兼容，而不是显示一个毫无意义的本地路径。

于是我尝试将笔记的图片上传到云端，最好是粘贴的时候就可以自动上传。其实像我用的typora和obsidian都有这个功能，但是需要有 OSS（对象存储），阿里云这些云厂商都有卖。但是，我有一台自己的服务器还花钱买 OSS 吗？

于是我就寻找开源的 OSS 平台搭建，然后就找到了minio，功能十分强大，并且使用 docker 搭建步骤十分简单。

1. 准备

首先需要有一台云服务器 / VPS，阿里云腾讯云这些也行，没有的可以看我推荐国外性价比比较高的：https://www.stmoonar.me/?p=6

然后安装 docker

Copy
curl -fsSL https://get.docker.com | bash -s docker

2. docker 部署

接着创建一个目录用来存放 minio 的数据，可以根据自己需要选择放在哪：

Copy
mkdir -p ~/minio/data

这样就可以直接启动了容器了

Copy
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" 密码，这两个地方自己手动修改一下。

3. 访问

上一步完成我们就可以直接访问了，使用ip:9000就可以进入后台，输入刚刚设置的用户名和密码登录。

登录之后创建 Buckets、创建 Access Keys 这些操作就和普通的 OSS 后台差不多了，可以手动上传文件。

现在还需要在一个客户端软件（在这里是我们的 markdown 笔记软件）填写好这些配置就可以不用到浏览器来上传文件了。

4. 域名

现在返回的图片链接都是 ip+port 作为 host，如果觉得难看想用自己的域名的话，就需要在nginx 配置文件里面设置反向代理，将 DNS 解析来的域名代理到 9001 端口。

还可以进一步配置 ssl 证书，这样就可以使用 https 协议访问存储的文件了。