上傳API

上傳 API 是一個 HTTP API,可讓您上傳工藝品和配件。

透過呼叫上傳啟動接口,您可以獲得上傳執行URL和狀態確認URL。透過依序呼叫所取得的URL,您可以上傳PITM資料和縮圖並檢查驗證結果。

範例程式碼 (Python) 包含這些進程的包裝器。

https://github.com/ClusterVR/PITMSample/blob/main/python/cluster_api.py

上傳文件

上傳 API 將 PITM 資料和縮圖作為單一 zip 檔案接收。

僅將以下兩個檔案放入 zip 檔案的“/”中。

對於工藝品

  • item_template.glb:工藝物品(PITM 資料格式)
  • icon.png:縮圖(512px x 512px 不透明 PNG)

對於配件

  • accessory_template.glb:配件(PITM 資料格式)
  • icon.png:縮圖(512px x 512px 不透明 PNG)

上傳起始端點

POST https://api.cluster.mu/v1/upload/item_template/policies(工藝物品)

POST https://api.cluster.mu/v1/upload/accessory_template/policies(配件)

通知開始上傳並取得文件本身的上傳URL和狀態確認URL。

請在 HTTP 標頭中設定以下內容。

  • Content-Type: “application/json”
  • X-Cluster-Access-Token:上傳者的 CCK 存取權令牌
  • X-Cluster-App-Version: “2.0.0”
  • X-Cluster-Device: “ClusterCreatorKit”
  • X-Cluster-Platform: “ClusterCreatorKit”
  • X-Cluster-Platform-Version:「api-<工具名稱>-<版本>」(例如「api-itemcreator-0.5」)

注意:請小心使用上傳者的 CCK 存取權令牌,而不是開發人員的。

工藝品

{
    "contentType": "application/zip",
    "fileName": "item_template.zip",
    "fileSize": 123456, // zip 檔案的大小 (字節)
    "isBeta": false // 如果作為測試版上傳則為 true,作為正式版上傳則為 false
}

回覆 正常:201 創建

{
  "form": {...}, // 上傳URL使用的資料
  "itemTemplateID": "12345678-abcd-1234-abcd-12345678abcd", // 新發放的ID
  "uploadUrl": "https://file-storage.cluster.mu/xxxxxx",
  "statusApiUrl": "https://upload-status.cluster.mu/item_template/xxxxxxxxxxxxxx"
}

此處取得的 itemTemplateID 可以在 https://docs.cluster.mu/script/en/classes/ItemTemplateId.html 中使用。上傳URL可以從 uploadUrl 取得,狀態確認URL可以從 statusApiUrl 取得。

配件

{
    "contentType": "application/zip",
    "fileName": "accessory_template.zip",
    "fileSize": 123456, // zip 檔案的大小 (字節)
}

回覆 正常:201 創建

{
  "form": {...}, // 上傳URL使用的資料
  "accessoryTemplateID": "12345678-abcd-1234-abcd-12345678abcd", // 新發放的ID
  "uploadUrl": "https://file-storage.cluster.mu/xxxxxx",
  "statusApiUrl": "https://upload-status.cluster.mu/accessory_template/xxxxxxxxxxxxxx"
}

上傳URL可以從 uploadUrl 取得,狀態確認URL可以從 statusApiUrl 取得。

上傳

透過對上傳 URL 執行“POST”,您將實際上傳文件並開始驗證。發出的上傳 URL 呼叫僅允許一次。

form 的內容發佈為 HTTP 表單,並將 zip 檔案發佈為 item.zip(MIME 類型:「application/zip」)。

使用狀態確認 URL 檢查上傳和驗證結果。

檢查狀態

您可以透過對狀態確認 URL 執行 GET 來檢查上傳是否成功。即使在完成上傳 URL 的 POST 後,伺服器的內部處理和驗證可能需要一些時間。這通常需要幾秒鐘。狀態確認URL可以被多次呼叫。建議每秒輪詢一次。如果在 120 秒內未完成,則視為上傳失敗並停止輪詢狀態確認端點。

回覆

{
    "status": "...",
    "reason": "..."
}
  • status: "VALIDATING", "ERROR", "COMPLETED" 之一
    • VALIDATING:驗證上傳的內容
    • COMPLETED: 上傳成功
    • ERROR:因為某些原因導致驗證錯誤或上傳失敗
  • reason: 如果 status"ERROR",則驗證錯誤的詳細訊息