From 3e85c710600ea95173d429250b331837035c0f0e 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:55:50 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B4=E7=90=86=E5=9B=BE=E7=89=87=E4=BB=A3?= =?UTF-8?q?=E7=90=86=E4=BB=A3=E7=A0=81=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 按 Rust 格式化规范整理 multipart 与响应解析代码。 --- server-rs/crates/api-server/src/raw_image.rs | 27 +++++++------------ .../platform-image/src/vector_engine/mod.rs | 4 +-- .../src/vector_engine/raw_edit.rs | 7 +++-- 3 files changed, 15 insertions(+), 23 deletions(-) diff --git a/server-rs/crates/api-server/src/raw_image.rs b/server-rs/crates/api-server/src/raw_image.rs index 811d316d4..c8fab56e3 100644 --- a/server-rs/crates/api-server/src/raw_image.rs +++ b/server-rs/crates/api-server/src/raw_image.rs @@ -7,8 +7,8 @@ use bytes::Bytes; use image::{GenericImageView, ImageFormat, ImageReader}; use platform_image::{ GPT_IMAGE_2_2K_LONG_EDGE_THRESHOLD, RAW_IMAGE_MAX_EDGE, RAW_IMAGE_MAX_PIXELS, - RawImageEditOptions, ReferenceImage, - create_vector_engine_raw_image_edit, validate_raw_image_edit_dimensions, + RawImageEditOptions, ReferenceImage, create_vector_engine_raw_image_edit, + validate_raw_image_edit_dimensions, }; use serde::Serialize; use serde_json::json; @@ -166,14 +166,10 @@ async fn parse_multipart_request( let mut width = None; let mut height = None; - while let Some(field) = multipart - .next_field() - .await - .map_err(|error| { - tracing::warn!(error = %error, "raw image multipart 字段解析失败"); - bad_request("multipart 请求无效") - })? - { + while let Some(field) = multipart.next_field().await.map_err(|error| { + tracing::warn!(error = %error, "raw image multipart 字段解析失败"); + bad_request("multipart 请求无效") + })? { let name = field .name() .ok_or_else(|| bad_request("multipart 字段缺少名称"))? @@ -226,13 +222,10 @@ async fn read_multipart_image( if !mime_type.eq_ignore_ascii_case("image/png") { return Err(bad_request(format!("{name} 必须为 image/png"))); } - let bytes = field - .bytes() - .await - .map_err(|error| { - tracing::warn!(field = name, error = %error, "raw image multipart 图片读取失败"); - bad_request(format!("{name} 字段读取失败")) - })?; + let bytes = field.bytes().await.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} 文件不能为空"))); } diff --git a/server-rs/crates/platform-image/src/vector_engine/mod.rs b/server-rs/crates/platform-image/src/vector_engine/mod.rs index 55a8e572e..44941cefb 100644 --- a/server-rs/crates/platform-image/src/vector_engine/mod.rs +++ b/server-rs/crates/platform-image/src/vector_engine/mod.rs @@ -21,8 +21,8 @@ pub use client::{ create_vector_engine_nanobanana_generate_content, }; pub use constants::{ - GPT_IMAGE_2_2K_LONG_EDGE_THRESHOLD, GPT_IMAGE_2_C_MODEL, GPT_IMAGE_2_MODEL, - NANOBANANA_2_MODEL, VECTOR_ENGINE_GPT_IMAGE_2_MODEL, VECTOR_ENGINE_PROVIDER, + GPT_IMAGE_2_2K_LONG_EDGE_THRESHOLD, GPT_IMAGE_2_C_MODEL, GPT_IMAGE_2_MODEL, NANOBANANA_2_MODEL, + VECTOR_ENGINE_GPT_IMAGE_2_MODEL, VECTOR_ENGINE_PROVIDER, }; pub use error::{PlatformImageError, PlatformImageStatusHint}; pub use image_source::download_remote_image; diff --git a/server-rs/crates/platform-image/src/vector_engine/raw_edit.rs b/server-rs/crates/platform-image/src/vector_engine/raw_edit.rs index 233b6cd9f..a1f13e20f 100644 --- a/server-rs/crates/platform-image/src/vector_engine/raw_edit.rs +++ b/server-rs/crates/platform-image/src/vector_engine/raw_edit.rs @@ -421,10 +421,9 @@ mod tests { #[test] fn raw_success_response_discards_empty_b64_json_entries() { - let payload: RawImageEditResponsePayload = serde_json::from_str( - r#"{"data":[{"b64_json":""},{"b64_json":"valid"}]}"#, - ) - .expect("response envelope"); + let payload: RawImageEditResponsePayload = + serde_json::from_str(r#"{"data":[{"b64_json":""},{"b64_json":"valid"}]}"#) + .expect("response envelope"); assert_eq!(collect_b64_images(payload.data), vec!["valid"]); }