diff --git a/seaweed-volume/src/server/handlers.rs b/seaweed-volume/src/server/handlers.rs index 302213a57..81121b2c7 100644 --- a/seaweed-volume/src/server/handlers.rs +++ b/seaweed-volume/src/server/handlers.rs @@ -2068,7 +2068,6 @@ pub async fn post_handler( // Validate Content-MD5 if provided let content_md5 = content_md5.or(parsed_content_md5); - let has_request_content_md5 = content_md5.is_some(); if let Some(ref expected_md5) = content_md5 { if expected_md5 != &original_content_md5 { return json_error_with_query( @@ -2288,13 +2287,13 @@ pub async fn post_handler( } else { // H2: Use Content-MD5 computed from original uncompressed data let content_md5_value = original_content_md5; - // Match Go: only include contentMd5 in response when request provided Content-MD5 + // Match Go: always include contentMd5 in response JSON and header let result = UploadResult { name: filename.clone(), size: original_data_size, // H3: use original size, not compressed etag: n.etag(), mime: mime_type.clone(), - content_md5: if has_request_content_md5 { Some(content_md5_value.clone()) } else { None }, + content_md5: Some(content_md5_value.clone()), }; let etag = n.etag(); let etag_header = if etag.starts_with('"') { @@ -2305,10 +2304,8 @@ pub async fn post_handler( let mut resp = (StatusCode::CREATED, axum::Json(result)).into_response(); resp.headers_mut() .insert(header::ETAG, etag_header.parse().unwrap()); - if has_request_content_md5 { - resp.headers_mut() - .insert("Content-MD5", content_md5_value.parse().unwrap()); - } + resp.headers_mut() + .insert("Content-MD5", content_md5_value.parse().unwrap()); resp } }