pardnio/node-image-server
最後更新
RESIZE ONCE, SERVE FROM CACHE EVERYWHERE!
Node.js 圖片伺服器,具備即時轉 WebP 縮圖、Nginx 與 CDN 快取與依日期歸檔的垃圾桶
目錄
功能特點
docker compose up -d· 完整文件
- 四層快取 — 瀏覽器、Cloudflare Worker、Nginx
proxy_cache與磁碟快取檔逐層攔截,同一張圖只需處理一次。 - 即時轉檔縮圖 — 以網址參數指定尺寸、品質與格式(WebP/AVIF/JPG/PNG),預設輸出 WebP 並將過大圖片縮至長邊 1024px。
- 參數化快取版本 — 每組尺寸與品質參數各自產生獨立快取檔,Worker 也以 query string 作為快取鍵,不同版本互不覆蓋。
- 依日期歸檔的垃圾桶 — 刪除不直接移除檔案,而是搬進
.trash/YYYY-MM-DD/並回傳位置,可依刪除日期快速還原。 - 一鍵容器化部署 — Docker Compose 同時啟動 Nginx 與 PM2 管理的 Node.js cluster,worker 異常退出自動補位。
架構
graph TB
Client[用戶端] --> Worker[Cloudflare Worker<br>CDN 快取]
Client --> Nginx[Nginx<br>proxy_cache]
Worker --> Nginx
Nginx --> App[Express Cluster]
App --> GET[GET /c/img<br>sharp 轉檔]
App --> POST[POST /upload]
App --> DEL[DELETE /del]
GET --> Storage[(storage/image<br>upload · cache)]
POST --> Storage
DEL --> Trash[(upload/.trash)]
授權
本專案採用 MIT LICENSE。
Author
Just open an issue to share an idea.
©️ 2025 邱敬幃 Pardn Chiu