不會死掉的 CDN 連結

失效模式

即使刪除了圖片,只要仍有直接的 CDN URL 在提供內容,它就不算真的被刪除。AI 圖像產品需要刪除,才能涵蓋每一條複製路徑。

Date
2026年7月3日
Author
Unexposed

已刪除的圖片仍在 CDN 邊緣快取節點上發光

最尷尬的隱私失敗,有時候並不是駭入。是 URL。

使用者從你的應用程式刪除一張圖片。儀表板不再顯示它。資料庫列被刪除,或標記為已刪除,或套用你 ORM 偏好的那種小小墓碑旗標。大家開心大約四秒。

接著有人打開舊的 CDN 連結,圖片仍然能載入。

這會發生是因為「產品刪除」與「資產刪除」是不同的工作。UI 可以把物件從使用者的視角移除,但儲存桶、CDN 邊緣快取、縮圖服務、佇列重試資料夾,或備份路徑可能仍保留著副本。對使用者而言,刪除意味著「不要再有這個了」。對系統而言,刪除意味著「不要再把正常頁面渲染出來」。

AI 圖像產品特別容易中招,因為生成的輸出常常是以檔案形式提供。它們可能為了效能而被快取。它們可能有縮圖。它們可能存放在可預測或長期存在的路徑下。它們可能被複製到稽核、分析或客服工具中。直接連結可能會像一份小小的詛咒紀念品一樣,比介面還活得久。

修正的起點是語言。不要承諾刪除,卻只涵蓋應用程式的畫面。要說清楚實際會發生什麼,然後讓實作跟上。若刪除會讓 CDN 快取失效、刪除來源檔案、移除衍生物,並使已簽名的 URL 過期,那很好。若備份會在固定期間內保留資料,也請明說。

技術上更安全的做法,是避免為私有輸出提供公開且永久的 URL。使用短到期時間的已簽名 URL。讓物件鍵不可猜測。追蹤衍生物。建立刪除流程,涵蓋來源、輸出、縮圖、快取,以及佇列殘留。並用使用者會做的方式測試刪除:在刪除前先複製 URL,刪除圖片後,再嘗試打開該 URL。

這不是什麼很炫的工程。沒有人會在發佈橫幅上寫「快取失效其實會尊重隱私承諾」,雖然老實說,我會尊重那份自信。但這些就是信任所由來的細節。

當使用者刪除一張 AI 生成的圖片時,產品不應該讓他們在基礎設施的殘留物之間玩躲貓貓。連結應該會隨著承諾一起死亡。

延伸閱讀:為什麼「刪除我的上傳」需要可驗證為什麼沒有託管式畫廊不是產品功能,以及 Unexposed 資料儲存

Your prompt. Your model. Only your content.

Create private images with Credits, Access Tokens, and sealed requests. Encrypted in transit, run on ephemeral compute, deleted after delivery.