AhFei

AhFei

简洁的写作需要勇气

MinIO + PicList | 自建圖床、視頻音頻床方案

在使用 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 ,用瀏覽器訪問這個網址就能看到圖片:

image

在寫 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 當圖床#

  1. 在【插件】界面,搜索 MinIO ,安裝作者是 herbertzz 的那個插件。其 GitHub 地址是 https://github.com/Herbertzz/picgo-plugin-minio 。(可能需要先安裝 nodejs ,並且還有重啟電腦才能生效)
  2. 在【圖床】,選擇【MinIO 圖床】,編輯配置,需要說明的有
    • endPoint:服務端的域名或者 IP 地址,ib.ahfei.blog
    • port: 443
    • userSSL:是否開啟 SSL,選擇開啟
    • accessKey:安裝 Minio Server 時設置的用戶名,vfly2
    • secretKey:之前設置的密碼,pass_vfly2_word
    • bucket:創建的桶名稱,imagesbed
  3. 保存配置
  4. 在【上傳】,選擇圖床,然後隨便上傳一張圖片試試是否成功(實際體驗,如果與服務端網絡不太好,超過 1 MB 就很容易失敗)

配合 Obsidian 使用#

簡單說明作用: 在拖入圖片到 Obsidian 時,自動上傳到圖床

  1. Obsidian 安裝插件:Image Auto Upload Plugin
  2. 進入插件設置頁面,
    • 修改默認上傳器為 PicGo(app)
    • 設置 PicGo server 上傳接口 為 http://127.0.0.1:36677/upload
    • 該插件還額外支持通過 PicList 進行雲端刪除,在刪除接口填入 http://127.0.0.1:36677/delete
    • 其他設置按需選擇
  3. 拖入一張圖片測試

PicList-Obsidian.png

視頻床#

上一節也提到了,其實就是把視頻這個文件的網址,按照一定格式構造。$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)

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。