跳到主要內容

API 文件 · 素材

素材上傳

單檔上傳、分段上傳與 URL 匯入。

素材需先上傳到平台,再於任務的 inputs 中以 asset_id 引用,同一素材可在多個任務中重複使用。單一檔案最大 2 GiB;上傳工作階段在 1 小時內有效(請見回傳的 expires_at)。

單檔上傳

檔案不超過 100 MB 時,POST /v1/uploads 會回傳 method: "single" 與預先簽署的 upload_url。以 PUT 上傳檔案本體並帶上回傳的 headers,再呼叫 complete。

分段上傳

較大的檔案會回傳 method: "multipart",並提供 part_size(通常為 16.0 MB)與 part_count:

  1. 呼叫 POST /v1/uploads/{id}/parts,傳入 { "part_numbers": [1, 2, …] },每次最多 100 個,回傳 { "parts": [{ "part_number": 1, "url": "…" }] }。
  2. 依序切割檔案後 PUT 每個分段,並記下回應標頭中的 ETag。
  3. 呼叫 complete,傳入 { "parts": [{ "part_number": 1, "etag": "…" }] }。

URL 匯入

呼叫 POST /v1/assets 時以 source_url 取代 upload_id,平台會從該網址下載檔案:僅支援 http / https 公開網址,檔案不超過 250 MB,且須在 60 秒內下載完成。只有下載並儲存成功後,素材才會長期保存;下載失敗時狀態變為 failed,status_reason 會說明原因。

素材狀態

status意義
上傳中URL 匯入:正在下載檔案
處理中平台正在偵測格式、尺寸與時長,並進行內容審核
可用可用於任務
需授權宣告為真人(real_person)的素材,需完成真人授權
失敗格式不符、下載失敗、內容審核未通過或校驗值不一致,請見 status_reason
刪除中已申請刪除;若仍被進行中的任務引用,將於任務結束後清除

在素材變為 available 之前送出任務,會回傳 422 asset_not_ready(可重試)。

# 1. 申請上傳
curl https://cn-api.aitoken.tools/v1/uploads \
  -H "Authorization: Bearer $AITOKEN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"filename":"hero.png","content_type":"image/png","size_bytes":1832211}'

# 2. 把檔案 PUT 到回傳的 upload_url(帶上回傳的 headers)
curl -X PUT "$UPLOAD_URL" -H "Content-Type: image/png" --data-binary @hero.png

# 3. 完成上傳
curl -X POST https://cn-api.aitoken.tools/v1/uploads/upl_xxx/complete \
  -H "Authorization: Bearer $AITOKEN_API_KEY" \
  -H "Content-Type: application/json" -d '{}'

# 4. 建立素材
curl https://cn-api.aitoken.tools/v1/assets \
  -H "Authorization: Bearer $AITOKEN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"upload_id":"upl_xxx","name":"hero"}'