From 46df12c08667e4a373b1bf6db411acd253d64786 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E5=AE=87?= Date: Fri, 11 Sep 2026 17:26:33 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B6=E6=95=9B=E5=8E=9F=E5=A7=8B=E5=9B=BE?= =?UTF-8?q?=E7=89=87=20multipart=20=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 服务端记录解析原始错误,客户端仅返回稳定分类文案。 --- server-rs/crates/api-server/src/raw_image.rs | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/server-rs/crates/api-server/src/raw_image.rs b/server-rs/crates/api-server/src/raw_image.rs index b32883a0f..1b071e05e 100644 --- a/server-rs/crates/api-server/src/raw_image.rs +++ b/server-rs/crates/api-server/src/raw_image.rs @@ -168,7 +168,10 @@ async fn parse_multipart_request( while let Some(field) = multipart .next_field() .await - .map_err(|error| bad_request(format!("multipart 字段读取失败:{error}")))? + .map_err(|error| { + tracing::warn!(error = %error, "raw image multipart 字段解析失败"); + bad_request("multipart 请求无效") + })? { let name = field .name() @@ -225,7 +228,10 @@ async fn read_multipart_image( let bytes = field .bytes() .await - .map_err(|error| bad_request(format!("{name} 文件读取失败:{error}")))?; + .map_err(|error| { + tracing::warn!(field = name, error = %error, "raw image multipart 图片读取失败"); + bad_request(format!("{name} 字段读取失败")) + })?; if bytes.is_empty() { return Err(bad_request(format!("{name} 文件不能为空"))); } @@ -244,12 +250,10 @@ async fn set_text_field( if target.is_some() { return Err(bad_request(format!("{name} 字段不能重复"))); } - *target = Some( - field - .text() - .await - .map_err(|error| bad_request(format!("{name} 字段读取失败:{error}")))?, - ); + *target = Some(field.text().await.map_err(|error| { + tracing::warn!(field = name, error = %error, "raw image multipart 文本读取失败"); + bad_request(format!("{name} 字段读取失败")) + })?); Ok(()) }