From e3750fc031acd2375019746c6ddcf8a00b1f5706 Mon Sep 17 00:00:00 2001 From: default Date: Wed, 24 Jun 2026 14:48:05 +0000 Subject: [PATCH] fix(cli): trim leading slash in download_prefix to prevent Path::join treating relative path as absolute --- crates/cli/src/commands/cp.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/crates/cli/src/commands/cp.rs b/crates/cli/src/commands/cp.rs index d83437a..0b1eaef 100644 --- a/crates/cli/src/commands/cp.rs +++ b/crates/cli/src/commands/cp.rs @@ -631,7 +631,11 @@ async fn download_prefix( } // Calculate relative path from prefix - let relative_key = item.key.strip_prefix(&src.key).unwrap_or(&item.key); + let relative_key = item + .key + .strip_prefix(&src.key) + .unwrap_or(&item.key) + .trim_start_matches('/'); let dst_path = dst.join(relative_key.replace('/', std::path::MAIN_SEPARATOR_STR));