整理图片代理代码格式
按 Rust 格式化规范整理 multipart 与响应解析代码。
This commit is contained in:
@@ -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} 文件不能为空")));
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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"]);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user