Browse Source

Add skip_serializing_if for UploadResult name and size fields

Go's UploadResult uses json:"name,omitempty" and json:"size,omitempty",
omitting these fields from JSON when they are zero values (empty
string / 0). The Rust struct always serialized them, producing
"name":"" and "size":0 where Go would omit them.
rust-volume-server
Chris Lu 4 days ago
parent
commit
f2da010083
  1. 6
      seaweed-volume/src/server/handlers.rs

6
seaweed-volume/src/server/handlers.rs

@ -1794,7 +1794,9 @@ fn encode_image(img: &image::DynamicImage, ext: &str) -> Option<Vec<u8>> {
#[derive(Serialize)]
struct UploadResult {
#[serde(skip_serializing_if = "String::is_empty")]
name: String,
#[serde(skip_serializing_if = "is_zero_u32")]
size: u32,
#[serde(rename = "eTag", skip_serializing_if = "String::is_empty")]
etag: String,
@ -1804,6 +1806,10 @@ struct UploadResult {
content_md5: Option<String>,
}
fn is_zero_u32(v: &u32) -> bool {
*v == 0
}
pub async fn post_handler(
State(state): State<Arc<VolumeServerState>>,

Loading…
Cancel
Save