HTTP API 參考
本頁列出 go-image-server 的所有 HTTP 端點、各端點的回應格式與共通行為。
端點
| 方法 | 路徑 | 處理器 | 詳細 |
|---|---|---|---|
GET |
/c/img/*path |
handlers.GetFromPath |
圖片讀取參數 |
POST |
/upload/*path |
handlers.PostToPath |
上傳 API |
DELETE |
/del/*path |
handlers.DeleteFromPath |
刪除 API |
GET |
/check/state |
handleHealthCheck |
回 200 ok |
| 任意 | 其他路徑 | routes.Set404 |
回 404 Not Found |
*path 為 Gin 萬用字元參數,可包含多層 /;處理器會去除首尾的 /。
回應格式
| 端點 | 成功 | 失敗 |
|---|---|---|
GET /c/img/*path |
圖片或 PDF 位元組(chunked) | 404 佔位 SVG(Cache-Control: no-cache) |
POST /upload/*path |
201 JSON |
純文字錯誤訊息 |
DELETE /del/*path |
200 JSON |
純文字錯誤訊息 |
上傳與刪除的錯誤一律經 utils.HandleError 以純文字回應並寫兩行 [ERROR] 日誌;讀圖錯誤經 utils.HandleGetError 回傳佔位圖。
逾時
三個處理器都在 goroutine 內工作並以 context.WithTimeout(30s) 等待結果。超過 30 秒回 408,內容為 timed out。Nginx 對 /c/img/ 另設 proxy_read_timeout/proxy_send_timeout 120 秒。
存取控制
Go 服務本身不做任何驗證。Nginx 的 /upload/ 與 /del/ 區塊預留了註解掉的 allow/deny,上線前應啟用 IP 白名單,或只在內網開放這兩個路徑(見 Nginx 設定)。