创建模型与上传授权 API
接口
POST https://tiangongtuxue.com/api/v1/models/upload-token
Authorization: Bearer <access-token>
Content-Type: application/json
请求体:
{ "name": "bracket.step", "description": "demo model", "webhook": null }
| 请求参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
name | string | 是 | 模型名称或原始文件名 |
description | string | 否 | 业务描述 |
webhook | string/null | 否 | 业务回调地址;不使用时传 null |
成功响应:
{ "data": { "uploadToken": "<credential>", "modelId": "<model-id>", "uploadUrl": "<upload-url>" } }
| 返回参数 | 类型 | 说明 |
|---|---|---|
data.uploadToken | string | 当前文件的一次性上传凭证,不要记录日志 |
data.modelId | string | 模型业务标识,后续所有状态和结果接口使用它 |
data.uploadUrl | string | 当前凭证对应的云存储上传地址 |
name 应使用真实源文件名。当前转换源格式为:.prt、.prt.x、.step、.stp、.igs、.iges、.x_t、.sldprt、.catpart、.jt、.par、.psm、.sat、.sab。.prt.x 必须保留完整复合扩展名。
上传完成后平台自动进入处理流程,客户端不需要再次提交模型。
JavaScript
const r = await fetch(`${base}/v1/models/upload-token`, {
method: 'POST',
headers: { Authorization: `Bearer ${accessToken}`, 'Content-Type': 'application/json' },
body: JSON.stringify({ name: file.name, description: 'demo model', webhook: null }),
});
if (!r.ok) throw new Error(`upload-token failed: ${r.status}`);
const { data } = await r.json();
// data.modelId 用于轮询;data.uploadUrl 与 data.uploadToken 用于直传
Python
r = requests.post(
f"{base}/v1/models/upload-token",
headers={"Authorization": f"Bearer {access_token}"},
json={"name": "bracket.step", "description": "demo model", "webhook": None},
timeout=15,
)
r.raise_for_status()
grant = r.json()["data"]
Java
String json = "{\"name\":\"bracket.step\",\"description\":\"demo model\",\"webhook\":null}";
var request = java.net.http.HttpRequest.newBuilder()
.uri(java.net.URI.create(base + "/v1/models/upload-token"))
.header("Authorization", "Bearer " + accessToken)
.header("Content-Type", "application/json")
.POST(java.net.http.HttpRequest.BodyPublishers.ofString(json))
.build();
var response = client.send(request, java.net.http.HttpResponse.BodyHandlers.ofString());
curl
curl --fail-with-body -X POST "$TUO_API_BASE_URL/v1/models/upload-token" \
-H "Authorization: Bearer $TUO_ACCESS_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"name":"bracket.step","description":"demo model","webhook":null}'
常见错误:401/403 表示令牌或工程权限无效;422 表示请求参数错误;409 表示工程当前不允许创建;413 表示额度或大小限制。