From 03aec35350c1992fcdbaf44688b235bc635ccb26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E5=AE=87?= Date: Thu, 24 Sep 2026 18:00:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=86=99=E6=98=8E=20TripoUrl=20=E8=84=B1?= =?UTF-8?q?=E6=95=8F=E5=8F=AA=E8=A6=86=E7=9B=96=20query=20=E4=B8=8E=20frag?= =?UTF-8?q?ment?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - server-rs/crates/platform-tripo/src/common/types.rs:redacted() 的文档注明脱敏范围只到 query / fragment,若 provider 改成把 token 写进路径(如 path-style SAS)则需一并处理路径段;无 query 分支补注释说明路径原样保留 --- server-rs/crates/platform-tripo/src/common/types.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/server-rs/crates/platform-tripo/src/common/types.rs b/server-rs/crates/platform-tripo/src/common/types.rs index 00326cc7d..a2cc19745 100644 --- a/server-rs/crates/platform-tripo/src/common/types.rs +++ b/server-rs/crates/platform-tripo/src/common/types.rs @@ -64,6 +64,10 @@ impl TripoUrl { /// 日志与调试用脱敏形式:隐藏可能携带签名参数的 query 与 fragment, /// 并保留原分隔符,不把 fragment 显示成 query。 + /// + /// 覆盖面只到 query / fragment 两段:S3 风格的预签名 URL 把凭据放在 query 里,这条 + /// 规则够用;如果 provider 改成把 token 写进路径的方案(例如 path-style SAS), + /// 路径会原样保留,`Debug` 输出就会泄漏凭据 —— 那时要在这里连路径段一起处理。 pub fn redacted(&self) -> String { let full = self.0.as_str(); match full.find(['?', '#']) { @@ -71,6 +75,7 @@ impl TripoUrl { let delimiter = &full[index..index + 1]; format!("{}{delimiter}", &full[..index]) } + // 没有 query / fragment:路径按上面的说明原样保留。 None => full.to_owned(), } }