From 6c33459b90cd90bf7ec5ebd723062b15e3946fe4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E5=AE=87?= Date: Sat, 19 Sep 2026 13:09:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=BA=20ImageProviderSettings=20=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E8=84=B1=E6=95=8F=20Debug=20=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 手动实现 Debug 并在其中把 api_key 渲染为 settings() 公开返回该结构体,默认 derive 会让 {:?} 直接打印 provider 凭据 --- .../src/image_provider/runtime/types.rs | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/server-rs/crates/platform-image/src/image_provider/runtime/types.rs b/server-rs/crates/platform-image/src/image_provider/runtime/types.rs index 6ac5bb229..ef7d26d39 100644 --- a/server-rs/crates/platform-image/src/image_provider/runtime/types.rs +++ b/server-rs/crates/platform-image/src/image_provider/runtime/types.rs @@ -15,7 +15,7 @@ impl ImageProvider { } } -#[derive(Clone, Debug)] +#[derive(Clone)] pub struct ImageProviderSettings { pub provider: ImageProvider, pub base_url: String, @@ -24,6 +24,20 @@ pub struct ImageProviderSettings { pub request_deadline: Option, } +impl std::fmt::Debug for ImageProviderSettings { + fn fmt(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + // 中文注释:与 ImageProviderClient 的 Debug 保持一致,避免日志泄漏 api_key。 + formatter + .debug_struct("ImageProviderSettings") + .field("provider", &self.provider) + .field("base_url", &self.base_url) + .field("api_key", &"") + .field("request_timeout_ms", &self.request_timeout_ms) + .field("request_deadline", &self.request_deadline) + .finish() + } +} + #[derive(Clone)] pub struct ImageProviderClient { settings: ImageProviderSettings,