上传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 Created
{
"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 Created
{
"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"
,验证错误的详细信息