跳到主要内容

创建模型与上传授权 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 }
请求参数类型必填说明
namestring是模型名称或原始文件名
descriptionstring否业务描述
webhookstring/null否业务回调地址;不使用时传 null

成功响应:

{ "data": { "uploadToken": "<credential>", "modelId": "<model-id>", "uploadUrl": "<upload-url>" } }
返回参数类型说明
data.uploadTokenstring当前文件的一次性上传凭证,不要记录日志
data.modelIdstring模型业务标识,后续所有状态和结果接口使用它
data.uploadUrlstring当前凭证对应的云存储上传地址

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 表示额度或大小限制。