|
@@ -64,6 +64,16 @@ def _flat_image_types() -> List[str]:
|
|
|
return flat
|
|
return flat
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+def _resolve_internal_base_url(request: Request) -> str:
|
|
|
|
|
+ """
|
|
|
|
|
+ 导入流程内部调用本服务时优先走集群内地址,避免经 ingress 再次鉴权导致 401。
|
|
|
|
|
+ """
|
|
|
|
|
+ configured = (settings.INTERNAL_API_BASE_URL or "").strip().rstrip("/")
|
|
|
|
|
+ if configured:
|
|
|
|
|
+ return configured
|
|
|
|
|
+ return str(request.base_url).rstrip("/")
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
# --- 内部辅助函数 ---
|
|
# --- 内部辅助函数 ---
|
|
|
async def _post_form(
|
|
async def _post_form(
|
|
|
session: aiohttp.ClientSession,
|
|
session: aiohttp.ClientSession,
|
|
@@ -475,7 +485,7 @@ async def auto_import_script_api(
|
|
|
推理服务调用 stitch_score_inference,按面(front/back)一次性提交
|
|
推理服务调用 stitch_score_inference,按面(front/back)一次性提交
|
|
|
ring + gray + stripe1..4,返回的 JSON 落到对应 fusion 主图记录中。
|
|
ring + gray + stripe1..4,返回的 JSON 落到对应 fusion 主图记录中。
|
|
|
"""
|
|
"""
|
|
|
- local_base_url = str(request.base_url).rstrip("/")
|
|
|
|
|
|
|
+ local_base_url = _resolve_internal_base_url(request)
|
|
|
forward_headers: Dict[str, str] = {}
|
|
forward_headers: Dict[str, str] = {}
|
|
|
auth = request.headers.get("authorization")
|
|
auth = request.headers.get("authorization")
|
|
|
if auth:
|
|
if auth:
|
|
@@ -566,7 +576,7 @@ async def auto_import_url_script_api(
|
|
|
back_stripe3: Optional[str] = Form(None, description="反面调光图3 URL"),
|
|
back_stripe3: Optional[str] = Form(None, description="反面调光图3 URL"),
|
|
|
back_stripe4: Optional[str] = Form(None, description="反面调光图4 URL"),
|
|
back_stripe4: Optional[str] = Form(None, description="反面调光图4 URL"),
|
|
|
):
|
|
):
|
|
|
- local_base_url = str(request.base_url).rstrip("/")
|
|
|
|
|
|
|
+ local_base_url = _resolve_internal_base_url(request)
|
|
|
forward_headers: Dict[str, str] = {}
|
|
forward_headers: Dict[str, str] = {}
|
|
|
auth = request.headers.get("authorization")
|
|
auth = request.headers.get("authorization")
|
|
|
if auth:
|
|
if auth:
|