TechMoon 科技月球
WordPress、SEO 與 AI 工具實測指南
TechMoon 科技月球
WordPress、SEO 與 AI 工具實測指南

Discord Image 開源圖床把 Discord 頻道當儲存後端,主打檔案永久保存。它的連結其實是一台 Go 伺服器在幫你即時換簽名網址,本文拆解機制、免費額度現況與自架風險。
用 AI 摘要這篇文章:
先講一個有點難堪的現場:2026 年 10 月初,這個開源圖床專案 README 上列的兩個官方示範站,一個連得上、卻對任何請求都給不出回應,另一個回 HTTP 522,內容傳遞網路等不到後方主機。兩個站同時失效,對一個主打「檔案永久保存」的工具來說不是好廣告,但它恰好把這類工具最該被理解的東西攤在陽光下:你以為的永久,到底是誰在扛。

Discord Image 是 GitHub 上 missuo 維護的開源專案,214 顆星、38 次 fork,授權 AGPL-3.0。它的想法一句話講完:你開一個 Discord 頻道、申請一個 Discord Bot,這套 Go 程式把上傳的圖片交給 Bot 丟進頻道,然後給你一個看起來永久有效的圖片網址。對想省圖床錢的人,這個提案很有吸引力,畢竟 Discord 的儲存不要錢。這篇要回答的問題是:這個「永久」怎麼來的、免費額度現在到底多大、自架之前該知道哪些事。我把整個原始碼 clone 下來逐檔讀過,實際編譯並啟動過它,也對兩個示範站做了連線診斷;我沒有申請 Discord Bot 帳號、沒有跑起完整實例,所以上傳之後的實際體驗不在我的接觸範圍,相關說法都會標明出處。
要看懂這個工具,得先知道一件 Discord 官方做過的事。2023 年 11 月,Discord 向開發者宣布:為了阻止有心人把它的 CDN 拿來散布惡意程式,附件網址要加上三個參數,到期時間戳、發行時間與簽名,連結大約 24 小時後失效。這個機制至今仍在執行,2026 年的現在,把 Discord 附件網址直接貼到自己的部落格或論壇,隔天看到的就是一張「內容已無法使用」。當年這個改動沒有禁任何人,但等於宣告了一件事:把 Discord CDN 當免費圖床直連,這條路被技術手段關掉了。
Discord Image 的存在意義,就是繞過這道 24 小時的牆,而且繞得很聰明。它的伺服器程式碼裡,上傳流程是這樣:圖片先落在伺服器的暫存資料夾,接著透過 Bot API 把檔案送進你指定的頻道,拿到那則訊息的 ID,回給你的網址長得像「你的網域/file/訊息ID」。真正的魔法在那個網址被打開的瞬間:程式每次都即時呼叫 Discord API 查詢那則訊息,取回附件此時此刻最新的簽名網址,然後用 HTTP 302 把訪客轉址過去。簽名網址會過期沒關係,因為每一次請求都是現場換一張新的。
所以「檔案永久保存」這句 README 上的承諾,拆開來看是三個條件的交集:你的那台 Go 伺服器要活著、Bot 權杖要有效、頻道裡那則訊息沒有被刪。三個條件缺一個,所有已經發出去的圖片連結同時死亡。README 自己也寫了但書:初始設定後不要更換 bot_token,否則既有檔案連結可能失效。作者在自己的部落格文章裡說得更白:Bot 帳號一旦被 Discord 封禁,新的 Bot 看不到歷史訊息,所有舊連結就救不回來了,他結尾寫下「且用且珍惜」。開頭那兩個死掉的示範站,只是把這條信任鏈最容易斷的第一環演給你看:伺服器一停,再漂亮的換網址機制也是空轉。

順著原始碼再看兩個設計細節,都與資料流向有關。其一是暫存檔:圖片上傳時會先完整落在伺服器的 uploads 資料夾,等 Bot 送進 Discord 成功後,若開啟 auto_delete 設定(預設開啟),本機那份會自動刪掉,兌現「不佔伺服器硬碟」的說法;但若 Bot 那一步失敗,檔案就會留在硬碟上,出錯的檔案累積多少,取決於你多常盯著它。其二是轉址的另一個分支:設定檔裡有個 proxy_url 欄位,用途是把回傳網址裡的 cdn.discordapp.com 換成你自訂的反代網域,README 說明這是給中國大陸使用者繞過 CDN 封鎖用的。對台灣的讀者來說這欄留空即可,但它透露了這類工具的主要客群在哪裡:作者示範站的設定就是掛著反代、開著自動刪除,為牆內環境量身訂做。
還有一個結構性的事實影響使用方式:整個服務只認設定檔裡那一個頻道 ID,所有上傳的檔案全部進同一個頻道,照時間排列。圖一多,那個頻道就是你的檔案庫,要找某張三個月前傳的圖,靠的是 Discord 用戶端裡的搜尋與滾動,而沒有這個工具提供的任何介面。
把 README 的宣稱對著原始碼看,會發現幾處值得停下來的地方。
檔案大小先對不上。README 說免費用戶 10MB、Nitro Basic 50MB、Nitro 500MB。這裡有兩層問題。先說帳號層:Discord 免費帳號的上傳上限一直在動,2024 年 9 月從 25MB 降到 10MB,2026 年 8 月 13 日官方又宣布升到 20MB,9 月初的官方更新紀錄確認全平台生效。再說程式層:這個專案的前端把上限寫死在 10MB,後端伺服器檢查的卻是 25MB,兩個數字都對不上 Discord 現在給的 20MB。今天自架一份,前端會替 Discord 擋掉一半的免費額度,而 README 的數字已經落後官方一個版本。
更關鍵的誤導藏在 Nitro 那兩個數字。實際把檔案送上 Discord 的不是你的 Discord 帳號,是你為了自架而申請的 Bot。Bot 沒辦法訂閱 Nitro,而 Discord 官方 API 文件的討論區早在 2023 年就記錄過,Bot 與 webhook 的上傳上限落後一般用戶,當年用戶升到 25MB 時 Bot 仍被擋在 8MB。以為加購 Nitro 就能讓這個圖床傳 500MB 檔案的人,錢會花得很冤枉。
| 上限來源 | 數字 | 生效時空 |
|---|---|---|
| 前端上傳表單 | 10MB | 2025 年 7 月改版時寫死 |
| 後端伺服器檢查 | 25MB | 2024 年 4 月初版沿用至今 |
| Discord 免費帳號官方限制 | 20MB | 2026 年 8 月 13 日宣布,9 月 8 日更新紀錄確認 |
| Discord Bot 實際身分 | 無 Nitro 可訂 | 2023 年官方討論區記錄為 8MB(當時用戶 25MB) |
四個數字各說各話,這就是「白嫖大廠儲存」這類專案的宿命:平台的規則會動,寫死在程式裡的數字不會跟著動。
功能面的宣稱也有落差。README 列了「上傳管理:查看上傳記錄、刪除檔案」。我把這個專案從 2024 年 4 月的第一個 commit 到現在的每一版伺服器程式碼都翻過,對外 API 從頭到尾只有兩個:上傳與轉址,沒有任何列出檔案或刪除檔案的端點;2024 年的 Bootstrap 舊前端與 2025 年改版的 Next.js 前端,也都不存在上傳記錄介面或刪除按鈕。要管理已上傳的檔案,唯一的辦法是打開 Discord 用戶端,手動到頻道裡找訊息刪。
另一個宣稱「支援圖片、影片與其他檔案格式」也只對了一半:後端確實來者不拒,但前端只接受圖片類型,拖影片進去會被擋下。
還有一個實際用戶踩過的坑,記在 issue #7:GIF 動圖上傳後,在 Discord 頻道裡看是會動的,但把這個工具產生的網址貼進另一個 Discord 頻道,對方看到的是一張靜止的定格畫面。回報者在官方示範站和自己的自架實例都重現了這件事,作者的回覆是這超出專案範圍。會用圖床貼動圖的人,這一條要先記下來。

部署需求本身不複雜,三樣東西:一個 Discord Bot 權杖、一個頻道 ID、一台能跑 Docker 或 Go 的伺服器。官方給的 compose.yaml 十幾行,環境變數填一填就能起,容器映像在 GitHub Container Registry 上,Docker Hub 也留有一份,累積超過 1,200 次拉取,最後更新停在 2025 年 7 月那波改版。
我在本機實際編譯過,現在的 Go 工具鏈一次就建出 15.8MB 的單一執行檔,這部分沒有坑。有兩個啟動行為值得先知道:不設權杖直接啟動,程式印一行缺 BOT_TOKEN 的訊息就退出;權杖填錯,Discord 會在 WebSocket 階段以 4004 驗證失敗拒絕,而且因為 Bot 連線和網頁服務跑在同一個行程,Bot 連不上時整個服務跟著退場,連網頁都一起消失。順帶一提,有人問過能不能丟上 Cloudflare 免跑伺服器,作者的答案是不行,這是純 Go 專案,Cloudflare 的無伺服器環境不收;Vercel 能跑 Go,但免費方案對單檔上傳大小另有限制,作者自己也不推薦。這也再次點題:這個工具的永久性天生掛在一台你要自己養的伺服器上。
比較需要在部署前想清楚的是安全面。上傳 API 大門全開,訪客不必通過任何金鑰、密碼或速率檢查,跨來源政策還是全開的預設值。把 8080 埠直接暴露出去,任何人都能把檔案灌進你的 Discord 頻道,燒的是你的頻道、你的 Bot、你的 Discord 帳號風險。自己架的話,至少要放在反代後面加上一層自己的認證,或者只聽本機、用 VPN 進去再用。
至於最根本的問題:拿 Discord 當圖床,會不會哪天被官方以違規為由處理?我翻了 Discord 開發者政策現行版(2024 年 7 月生效),裡面沒有明文禁止把附件機制用於外部檔案託管;規範裡最接近的條文,是要求應用程式不得將 API 取得的資料用於宣告功能以外的地方,以及禁止挖掘資料。2023 年那波網址簽名化,官方給出的理由是資安防堵惡意軟體,圖床工具只是連帶被波及。現在自架不踩明文紅線,真正的風險不是帳號被砍,而是平台改機制:這個工具的每一條連結都靠 Discord API 的即時回應活著,哪天 Discord 調整附件查詢的方式或限流政策,救火的速度取決於一個已經一年多沒有親自改程式的作者。
維護狀態也要如實講。這個專案 2025 年 7 月 12 日有一次大改版,前端整個換成 Next.js、檔案限制同步更新,那是作者最後一次親自改程式。之後唯一的活動是 2025 年 12 月 6 日一批依賴更新的自動機器人提交,2026 年到現在零 commit。作者本人的技術背景不弱,他是匹茲堡大學資訊碩士、在 AI 公司做基礎設施、名下自營四個自治系統編號的網路工程師,但他對圖床這條產品線的耐心看起來有限:更早的上一個作品 Telegraph-Image-Hosting,已被他親手封存。專案不會突然消失,AGPL-3.0 的原始碼會一直在,但「壞了有人修」這件事,在單人維護又停更的專案上是要自己吸收的風險。
這個工具的真實定位,是一台幫你即時換簽名網址的小型轉址伺服器,儲存免費、程式碼極簡、可審計,這些都是真的。它適合的人:本來就有伺服器與網域、想放測試圖或低重要度素材、願意自己加一層認證、並接受哪天伺服器停了連結就全斷的人。不適合的人:要長期放在正式網站上的圖、需要管理介面與刪除流程的團隊、以及任何想把重要檔案長期託管的場景,對這些需求,永久性掛在自己一台伺服器上是錯的架構。
如果只是要一個能直接用的免費圖床,TechMoon 之前介紹過 Freeimage.host 免費圖床,單檔 64MB、免註冊、有刪圖機制;把 Imgur 包一層的 驟雨重山圖床 是另一個思路;想把圖片連結直接發進 Discord 社群,可以先看看我們整理的 DiscordHunt 伺服器目錄。至於 Discord Image,把它當成一堂「免費儲存的真實成本」的教材,比把它當生產力工具更恰當,真要架,先把伺服器的存活率照顧好,因為那就是你圖片連結的壽命上限。