# -*- coding: utf-8 -*- import json, ssl, pathlib, urllib.request, hashlib BASE = "https://192.168.31.88:8042" CFG = pathlib.Path(r"C:\Users\admin\.zcode\cli\config.json") pat = json.loads(CFG.read_text(encoding="utf-8-sig"))["mcp"]["servers"]["sorb"]["env"]["SORB_PAT"] ctx = ssl._create_unverified_context() p = pathlib.Path(r"D:\腾讯\吕布\分镜参考.png") data = p.read_bytes() sha = hashlib.sha256(data).hexdigest() print("sha256:", sha, "size:", len(data)) intent = { "client_namespace": "lubu_pv_board", "idempotency_key": "upload_ref_board_20261028_v1", "project_id": 30, "name": "吕布PV_分镜参考_用户提供的风格参考", "asset_type": "image", "mime_type": "image/png", "file_size": len(data), "sha256": sha, } req = urllib.request.Request(BASE + "/api/external/v1/resources/upload", data=data, method="POST", headers={"Authorization": "Bearer " + pat, "Content-Type": "image/png", "X-Sorb-Upload-Intent": json.dumps(intent)}) try: with urllib.request.urlopen(req, context=ctx, timeout=60) as r: print(r.read().decode("utf-8")[:800]) except urllib.error.HTTPError as e: print("HTTP", e.code, e.read().decode("utf-8")[:800])