以往博客都是直接将文件粘贴到文件夹,但是其不是很方便,并且也不方便转移(到其他平台上)。最后综合几个选择,选择自建 MinIO 当作图床,同时也实验一下 MinIO 的文件压缩功能。

配置 MinIO

首先你需要配置 docker,随后找到一个你心仪的位置,创建如下docker-compose.yml,记得更改账户密码为强密码:

services:
  minio_web:
    image: minio/minio:RELEASE.2024-10-13T13-34-11Z
    ports:
      - "9000:9000"
      - "9001:9001"
    volumes:
      - ./minio_data:/data
    environment:
      MINIO_ROOT_USER: xxx114514
      MINIO_ROOT_PASSWORD: abcdefg
      MINIO_COMPRESSION_ENABLE: "on"
      MINIO_COMPRESSION_EXTENSIONS: "*"
      MINIO_COMPRESSION_MIME_TYPES: "*"
    command: server /data --console-address ":9001"
    restart: always
    deploy:
      resources:
        limits:
          memory: 512M

其中我使用MINIO_COMPRESSION_ENABLE环境变量使其开启透明压缩,同时指定压缩对象为所有类型的文件(虽然其对于图片是否起效存疑)。使用docker compose up -d启动后访问9001上的 WEB 界面。

随后创建一个访问密匙:

再创建一个桶(随便取什么名字),默认情况下桶的权限是公开不可读的,我们添加一个匿名用户的只读权限(千万别学某些教程里直接设置为 pubic):

最后使用 Caddy 进行反代:

minio.menghuan1918.com {
        reverse_proxy 127.0.0.1:9000
        tls /etc/ssl/menghuan1918.pem /etc/ssl/menghuan1918.key
}

其中tls指定的我的证书,如果没有可以不填(Caddy 会自动申请的)。注意此处反代的是 9000 的 API 端口不是 9001 的 WEB 端口。

最后就可以拿着之前的访问密匙去填写图床上传工具啦~比如我是使用的思源笔记 + PicGo 插件完成的。

实际上从这篇开始,所有的图片就已经是图床上的啦