コンテンツにスキップ

Create library model

このページのスクリプトのセットアップブロックから始め、下のスニペットコードを追加してください。

モデルを作成し、ファイルを署名付きURLにアップロードしてから完了処理を行い、ステータスをポーリングします。

# ... script setup ...
FILE_PATH = "model.glb"
filename = os.path.basename(FILE_PATH)
filesize = os.path.getsize(FILE_PATH)
create_result = api_post(
f"/v1/asset-library/{ORGANIZATION_ID}/models",
{"name": "My Model", "files": [{"filename": filename, "filesize": filesize}]},
)
model_id = create_result["id"]
file_id = create_result["fileId"]
upload_link = create_result["uploadLink"]
with open(FILE_PATH, "rb") as file_handle:
put_response = requests.put(
upload_link,
data=file_handle,
headers={"Content-Length": str(filesize)},
)
put_response.raise_for_status()
etag = put_response.headers["ETag"]
api_post(
f"/v1/asset-library/{ORGANIZATION_ID}/models/{model_id}/finalize",
{"fileId": file_id, "etag": etag},
)
import time
for attempt in range(1, 61):
detail = api_get(f"/v1/asset-library/{ORGANIZATION_ID}/models/{model_id}")
status = detail.get("status", "unknown")
print(f"[{attempt}] status={status}")
if status in {"ready", "readyForSetup", "failed", "cancelled"}:
print(json.dumps(detail, indent=2))
break
time.sleep(5)