MinIO + PicList | 自建图床、视频音频床方案

在使用 MinIO + PicList 图床 方案之前，我也自建过兰空图床、EasyImages2、Chevereto，不过它们更像是公开给别人临时使用的，而不是自己用的，用着不直观。

MinIO + PicList 方案，思路很简单：MinIO 负责保存图片、开放下载网址，PicList 用于上传图片和构造网址。

介绍 MinIO 如何作为图床

MinIO 属于对象存储，就是一个网络目录，可以上传文件、下载文件，可以通过网址访问文件。

如果我们上传图片到 MinIO、并构造正确的网址，就能在网页上显示这张图片了 —— 图床🎉

如果上传视频，那就能直接在网页上播放视频（前提是浏览器支持播放的格式，比如 mp4）—— 视频床🎉

如果上传音频，就是音频床

如果上传普通文件，可以当作网盘用来分享文件

安装 MinIO： 自建 对象存储 - 构建高效可靠的数据存储系统 - 技焉洲 (vfly2.com)

手动上传并构造网址是完全可以的，上传的文件的下载链接格式为（填入 ip 或域名、桶名 vfly2 和文件名 file.name，注意端口是 9000）

Copy
http://ip:9000/vfly2/file.name

比如，在 MinIO 后台创建了一个 imagesbed 桶，在里面上传了一张名为 vfly2technique.png 的图片，那么这张图片的网络地址就是： http://imgbed.ahfei.blog:9000/imagesbed/vfly2technique.png ，用浏览器访问这个网址就能看到图片：

在写 md 格式的文章时，想插入这个图片，使用指定格式就可以了。

Copy
![](http://imgbed.ahfei.blog:9000/imagesbed/vfly2technique.png)

如果借助工具，把上传和构造网址的工作自动化，就更方便了。开源的 PicList 就是专门做这个的。

PicList

PicList 是一款高效的云存储和图床平台管理工具，在 PicGo 的基础上经过深度的二次开发。支持非常丰富的存储方式：WebDAV、S3 API 兼容平台、腾讯 COS V5、Github 等，还有插件功能，通过插件可以支持 MinIO。

GitHub： Kuingsmile/PicList: An image upload and manage tool, base on PicGo (github.com)

安装 PicList

下载地址： https://github.com/Kuingsmile/PicList/releases ，找到需要的版本下载安装。

MacOS 用户现在可以使用 Homebrew 来安装 PicList 了，只需要执行以下命令即可：

Copy
brew install piclist --cask

卸载命令：

Copy
brew uninstall piclist

设置 PicList 使用 MinIO 当图床

在【插件】界面，搜索 MinIO ，安装作者是 herbertzz 的那个插件。其 GitHub 地址是 https://github.com/Herbertzz/picgo-plugin-minio 。（可能需要先安装 nodejs ，并且还有重启电脑才能生效）

在【图床】，选择【MinIO 图床】，编辑配置，需要说明的有

endPoint：服务端的域名或者 IP 地址，ib.ahfei.blog

port： 443

userSSL：是否开启 SSL，选择开启

accessKey：安装 Minio Server 时设置的用户名，vfly2

secretKey：之前设置的密码，pass_vfly2_word

bucket：创建的桶名称，imagesbed

保存配置

在【上传】，选择图床，然后随便上传一张图片试试是否成功（实际体验，如果与服务端网络不太好，超过 1 MB 就很容易失败）

配合 Obsidian 使用

简单说明作用： 在拖入图片到 Obsidian 时，自动上传到图床

Obsidian 安装插件：Image Auto Upload Plugin

进入插件设置页面，

修改默认上传器为 PicGo(app)

设置 PicGo server 上传接口 为 http://127.0.0.1:36677/upload

该插件还额外支持通过 PicList 进行云端删除，在删除接口填入 http://127.0.0.1:36677/delete

其他设置按需选择

拖入一张图片测试

视频床

上一节也提到了，其实就是把视频这个文件的网址，按照一定格式构造。$url 替换为真实网址：

Copy
not support video tag.

比如在 Obsidian，是支持 HTML 标签的，因此，放入这样的段落，就是在插入视频

Copy
not support video tag.

not support video tag.

如果不显示，是因为这个网站平台不支持，可以到博客查看效果。

音频床

可以用于 Anki 的自制卡片，格式为

Copy
not support audio tag

比如

Copy
not support audio tag

not support audio tag

如果不显示，是因为这个网站平台不支持，可以到博客查看效果。

分享普通文件

学会构造网址就行。格式为

Copy
http://ip:9000/bucket_name/file.name

然后就能直接下载了。这里自荐一下 AhFei 创建的开源自动下载工具： 定期检查和下载软件的最新版 UpdateFetch 的安装步骤 - 技焉洲 (vfly2.com) ，它利用 MinIO 保存文件，方便分享。

原文链接： https://technique.vfly2.com/2024/03/self-hosted-image-hosting-service/

版权声明：本博客所有文章除特別声明外，均为 AhFei 原创，采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 技焉洲 (technique.vfly2.com) 。