refactor(api): TOML 配置 SSOT、统一错误契约、Auth/事务加固与可观测性 (#33)

配置 SSOT(TOML + .env)
统一错误契约
Auth 与事务边界
Redis / Celery 可靠性:业务 Redis(DB/0)与 Celery broker/backend(DB/1)显式拆分;连接池、sync client
可观测性(OpenTelemetry + LGTM)
This commit is contained in:
Sully
2026-05-22 13:44:50 +08:00
committed by GitHub
parent f09ae248f9
commit 53e0065e3e
298 changed files with 15247 additions and 4344 deletions

View File

@@ -8,6 +8,7 @@ from urllib.parse import urlparse
from app.core.config import settings
from app.core.logging import get_logger
from app.ports.storage import ObjectStorage
from app.core.runtime_constants import misc_defaults
logger = get_logger(__name__)
@@ -35,7 +36,7 @@ def extract_cos_object_key_if_owned(url: str | None) -> str | None:
candidates: list[str] = []
bucket = (settings.tencent_cos_bucket or "").strip().lower()
region = (settings.tencent_cos_region or "").strip().lower()
region = (misc_defaults.tencent_cos_region or "").strip().lower()
if bucket and region:
candidates.append(f"{bucket}.cos.{region}.myqcloud.com")
base = (settings.tencent_cos_base_url or "").strip()
@@ -135,7 +136,7 @@ def avatar_url_for_api_response(stored_url: str | None) -> str | None:
if not key:
return s
if not (
(settings.tencent_cos_secret_id or "").strip()
(settings.tencent_secret_id or "").strip()
and (settings.tencent_cos_bucket or "").strip()
):
return s
@@ -159,7 +160,7 @@ def best_effort_delete_cos_object_for_url(url: str | None) -> None:
if not key:
return
if not (
(settings.tencent_cos_secret_id or "").strip()
(settings.tencent_secret_id or "").strip()
and (settings.tencent_cos_bucket or "").strip()
):
return