通过宝塔建立MinIO服务并实现图床功能

通过宝塔建立MinIO服务并实现图床功能


前置条件

  • 已经安装宝塔面板的服务器:此步骤网上或者B站有很多
  • 宝塔面板安装了Docker:安装很简单跳过
  • 域名:若服务器在国内,则需要备案,否则不需要。
  • 已安装PicGo:自行安装

步骤

1. 安装MinIO服务

  • 在搜索框输入minio并点击安装
    aaa
  • 设置安装参数

    选项说明
  • 名称:默认即可,有强迫症改也行。
  • 版本选择:默认
  • 域名:这是提供Web服务器的域名,填入自己的域名,例如域名是myname.com,填入即可。建议设置二级域名,例如myminio.myname.com来实现域名复用性。
    • 允许外部访问:不勾选,因为有域名就不需要,弄的话还得设置服务器安全组。

      警告:若你的域名通过CDN匹配到服务器ip,则需要看其是否支持Websocket,如不支持则在查看对象桶时会一直处于Loading…,则需选择支持的CDN或者域名直接指向服务器ip

  • web端口和api端口:前者提供web服务,后者提供api服务,默认即可,当然你想改也行,不过通过域名访问也不用担心会被扫描,毕竟域名访问的是80端口通过反向代理不用暴露端口
  • 管理员用户和管理员密码:默认也行,可以设置自己喜欢的,忘记了也能查看。
  • 会话持续时间:默认
  • cpu和内存:我的服务器是2h2g,设置小了安装会出问题,默认即可。

2. 进行MinIO设置

  • 通过上述设置的域名访问MinIO的Web服务,账户密码为上述设置的管理员用户和密码,忘记了点击Docker中的MinIO服务上的详情可看。(复制的前面有缩进,记得删除

  • 网站虽然是全英文的但是有Edge可以翻译,不过可能有些人用的是谷歌,所以就不翻译了

  • 创建对象桶

  • 对象桶名称会显示在图片的Url中,建议精简点,完成点击右下角创建。个人使用图床其它选项不用管,想了解的可自行搜索资料或者去MinIO官网查阅。

  • 创建访问键

  • 记住访问键其后续不可更改,用于上传图片,可下载保存。忘记了也没多大事,重新创建一个就是了。

  • 确认访问键参数,其它参数可自行查阅资料。

  • 点击对应对象桶进行设置

  • 设置匿名访问策略,用于图片展示。

  • 设置文件夹权限,若用/则是当前对象桶内全部文件。我习惯文件夹分类就按不同类型页面创建文件夹,好处在于方便管理,以及防止地址栏输入/时返回所有的图片信息的爬虫,虽然作用不大。

    注意:设置路径后不要去改Summary页中的Access Policy:custom,此时它自行按文件夹权限设置了,若改的话得重新设置文件夹权限


3.设置反向代理实现API接口

  • 回到宝塔面板,添加反向代理,顺便一提下面那个是Web服务的域名。
  • 反向代理参数如下,域名是你的域名,同理建议用二级域名(该域名可以用CDN,不需要Webscoket)。目标的含义是当前服务器下19000端口,按你的端口号设置即可。发送域名会自动填,不用管。备注自己填。
  • 添加配置项解决反代后这个head请求转换的问题,感谢这个大佬做出的问题解决
    1
    2
    #禁用将“ HEAD”方法转换为“ GET”进行缓存。
    proxy_cache_convert_head off;

4.设置PicGo图床

  • 安装MinIO插件。搜索minio即可
  • 设置minio插件显示
  • 点击+新建图床
  • 设置图床


    选项说明
  • 具体选项看:Herbertzz/picgo-plugin-minio (github.com)
  • 图床配置名:用于自己看
  • endPoint:MinIO的API域名,上述设置的一样即可
  • port:端口号默认是80,参考宝塔面板中反向代理中域名管理的端口号即可。
  • useSSL:勾选时则使用https进行传输,如果域名没添加SSL证书则不勾选。初次设置时不勾选的话,应该勾选再取消,避免点确认错误,想想可能是该选项的初始值没设置。
  • 允许不安全的证书:出现证书错误时勾选,我倒是没碰到过这个问题。
  • bucket:对象桶的名字
  • 同名文件:注意,选择保留两者时,会根据是否有重名来重命名,但是我勾选上时不管是否有时都会重命名。
  • 基础目录:文件存储的目录,我是设置了/posts为只读,所以它的次级文件夹都是可以被读的,如果填如/自定义,需要确保该文件夹能被读。
  • 自定义域名:用于复制显示的域名,如果域名添加了SSL证书可用https,没有则http://MinIO的API域名
  • 自动归档:yes表示开启,把上传的图片归档到当天日期目录下。我习惯按照帖子文件夹归档,所以不选择,还有一个好处是在相册的搜索中可按照帖子文件夹名字搜索
  • ……
  • !!!:记得修改完点确认,如果确认后没跳转回图床设置页,检查上面内容是否有错误。

5.上传图片测试

  • 没问题的情况
  • 错误useSSL-检查SSL证书有没有问题
  • 访问键错误-检查访问键是否正确
  • 对象桶不存在-检查对象桶是否正确
  • Url错误-检查Url是否错误
  • 端口错误
  • 其它-当我使用了443端口,却没开启useSSL时出现,当然也有其它问题会导致它出现。

6. 扩展

  • SSL证书是否需要设置?
    • 我觉得有时间搞一下也不是不错,反正域名商给的免费证书够用,而且展示的图片也可在浏览器中不会出现不安全的提示。
    • 设置好后修改端口为443,且useSSL开启、
  • 盗链是否需要设置?
    • 个人站设置一下也不错,我用了CDN还是节省一下流量。
  • 图片怎么不占空间?
    • 使用saerasoft工具压缩为.webp格式即可,貌似安装后会自动设置为中文,操作也挺方便的。
    • 压缩大小自己决定,我认为图片文字清晰且没噪点就行,大概60。
  • 备份该怎么做?
    • /www/dk_project/dk_app/minio/你设置的minio服务名/data/对象桶名字,备份该对象桶即可,恢复时放入data文件夹
    • 并且应该可以通过特殊方法监听文件夹,并发送文件到某个地方实现备份,不过我没具体研究。
  • 没域名可以使用吗?
  • MinIO还有什么用?
    • 当然是当网盘或者在线视频呗,不过服务器的网速决定下载速度,2M小水管还是别想了。