From b79894d604cee318e526352709d9dbd2ca014ef6 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Tue, 17 Mar 2026 19:01:42 -0700 Subject: [PATCH] Only set upload response name when needle HasName matching Go Go checks reqNeedle.HasName() before setting ret.Name. Rust always set the name from the filename variable, which could return the fid portion of the path as the name for raw PUT requests without a filename. --- seaweed-volume/src/server/handlers.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/seaweed-volume/src/server/handlers.rs b/seaweed-volume/src/server/handlers.rs index 682b1a8a9..ec41f33b4 100644 --- a/seaweed-volume/src/server/handlers.rs +++ b/seaweed-volume/src/server/handlers.rs @@ -2311,8 +2311,13 @@ pub async fn post_handler( // H2: Use Content-MD5 computed from original uncompressed data let content_md5_value = original_content_md5; // Match Go: always include contentMd5 in response JSON and header + // Go only sets ret.Name when reqNeedle.HasName() let result = UploadResult { - name: filename.clone(), + name: if n.has_name() { + filename.clone() + } else { + String::new() + }, size: original_data_size, // H3: use original size, not compressed etag: n.etag(), mime: mime_type.clone(),