From 64fe66b45a75b3d11ef5f2bf1a97304fae8ca5f3 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 19 Feb 2026 11:25:41 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=B8=8A=E4=BC=A0=E9=93=BE=E8=B7=AF?= =?UTF-8?q?=E5=B0=86code=E4=B8=8ETLS=E5=BC=82=E5=B8=B8=E7=BA=B3=E5=85=A5?= =?UTF-8?q?=E5=8F=AF=E9=87=8D=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/reverse/assets_upload.py | 30 ++++++++++++++++++++------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/app/services/reverse/assets_upload.py b/app/services/reverse/assets_upload.py index f721cfa..416c181 100644 --- a/app/services/reverse/assets_upload.py +++ b/app/services/reverse/assets_upload.py @@ -65,14 +65,28 @@ class AssetsUploadReverse: browser = get_config("proxy.browser") async def _do_request(): - response = await session.post( - UPLOAD_API, - headers=headers, - json=payload, - proxies=proxies, - timeout=timeout, - impersonate=browser, - ) + try: + response = await session.post( + UPLOAD_API, + headers=headers, + json=payload, + proxies=proxies, + timeout=timeout, + impersonate=browser, + ) + except Exception as post_err: + err_msg = str(post_err) + # 这两类异常在实际环境里多为瞬时网络/上游抖动,按可重试处理。 + if "curl: (35)" in err_msg or '"code"' in err_msg: + logger.warning( + "AssetsUpload transient exception, mark as retryable: " + f"{err_msg}" + ) + raise UpstreamException( + message=f"AssetsUpload transient failure: {err_msg}", + details={"status": 403, "error": err_msg}, + ) + raise if response.status_code != 200: body_preview = "" try: