保存 AI 生成檔案:從 PiAPI 輸出連結到持久儲存

生成任務完成後,應用程式可以取得結果,但供應商託管的連結不等於永久媒體庫。若使用者日後仍需開啟、編輯或下載結果,應將檔案複製到你控制的儲存空間,並獨立追蹤複製狀態。
1. 依實際模型讀取輸出
查詢已保存的任務 ID,確認 data.status 為 completed 後再擷取檔案。data.output 的結構會隨模型及任務類型改變。參考對應的任務查詢範例,別假設每個回應都有相同的頂層圖片或影片連結。
例如,Kling 文件中的回應包含具有影片資源的 works 陣列;其他模型使用不同欄位。將任務 ID、模型、任務類型、完成時間與所選資源索引和業務作業一起保存,以便重試時取回同一個結果。
2. 及時複製,逐項確認保留期限
PiAPI 的輸出儲存文件依服務與託管位置列出不同保留規則。有些條目訂有短期保存期限,有些取決於供應商 CDN 政策;頁面也包含歷史服務。不要把某一條目的期限套用到所有現行模型,也不要把未說明期限解讀為無限保存。
生成完成後,透過Webhook 或輪詢流程啟動背景複製。確認回呼之前先持久保存作業。下方是一種應用程式狀態順序;這些儲存狀態屬於你的應用程式,不是 PiAPI 任務 API 的狀態。
generation completed → copy queued → downloading → verified → saved
↘ copy failed → retry copy3. 標記保存前驗證檔案內容
從結果連結下載時,不要轉送 PiAPI API 金鑰。限制允許存取的目標、檢查重新導向,並設定大小與時間限制。檢查 HTTP 狀態、實際位元組數、預期媒體類型與基本可讀性。回傳 200 的 HTML 錯誤頁面不是已保存的影片。
先寫入暫存物件、計算校驗和,驗證成功後才發布最終物件。使用依任務 ID 與資源索引建立的穩定鍵值。記錄物件鍵值、位元組數、校驗和及保存時間,再依你的存取政策提供受控連結。
4. 分開重試儲存與生成
複製失敗時,保留生成已完成的狀態,只要來源仍可用就重試複製。使用持久化唯一記錄,防止重複事件建立多筆媒體資料。若連結已無法讀取,重新查詢任務並檢查目前輸出;這不保證能恢復過期檔案。上線前測試重複事件、下載中斷與連結不可用的情況。
參考:輸出儲存、Kling 任務查詢與Webhook。這是應用程式儲存方案,不代表 PiAPI 承諾提供封存保存。


