在使用 MinIO + PicList 圖床 方案之前,我也自建過蘭空圖床、EasyImages2、Chevereto,不過它們更像是公開給別人臨時使用的,而不是自己用的,用著不直觀。
MinIO + PicList 方案,思路很簡單:MinIO 負責保存圖片、開放下載網址,PicList 用於上傳圖片和構造網址。
介紹 MinIO 如何作為圖床#
MinIO 屬於對象存儲,就是一個網絡目錄,可以上傳文件、下載文件,可以通過網址訪問文件。
- 如果我們上傳圖片到 MinIO、並構造正確的網址,就能在網頁上顯示這張圖片了 —— 圖床🎉
- 如果上傳視頻,那就能直接在網頁上播放視頻(前提是瀏覽器支持播放的格式,比如 mp4)—— 視頻床🎉
- 如果上傳音頻,就是音頻床
- 如果上傳普通文件,可以當作網盤用來分享文件
安裝 MinIO: 自建 對象存儲 - 構建高效可靠的數據存儲系統 - 技焉洲 (vfly2.com)
手動上傳並構造網址是完全可以的,上傳的文件的下載鏈接格式為(填入 ip 或域名、桶名 vfly2 和文件名 file.name,注意端口是 9000)
http://ip:9000/vfly2/file.name
比如,在 MinIO 後台創建了一個 imagesbed 桶,在裡面上傳了一張名為 vfly2technique.png 的圖片,那麼這張圖片的網絡地址就是: http://imgbed.ahfei.blog:9000/imagesbed/vfly2technique.png ,用瀏覽器訪問這個網址就能看到圖片:
在寫 md 格式的文章時,想插入這個圖片,使用指定格式就可以了。
![](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 了,只需要執行以下命令即可:
brew install piclist --cask
卸載命令:
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
替換為真實網址:
<video controls> <source src="$url"> not support video tag. </video>
比如在 Obsidian,是支持 HTML 標籤的,因此,放入這樣的段落,就是在插入視頻
<video controls> <source src="https://ib.ahfei.blog/videobed/lightningrod-vid_wg_720p.mp4"> not support video tag. </video>
如果不顯示,是因為這個網站平台不支持,可以到博客查看效果。
音頻床#
可以用於 Anki 的自製卡片,格式為
<audio controls> <source src="$url" type="audio/mpeg"> not support audio tag </audio>
比如
<audio controls> <source src="https://ib.ahfei.blog/audiobed/indulge-23-09-54.mp3" type="audio/mpeg"> not support audio tag </audio>
如果不顯示,是因為這個網站平台不支持,可以到博客查看效果。
分享普通文件#
學會構造網址就行。格式為
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) 。