From 4c49bfd61ffa83e302115a9f0d2eaafed7e85f40 Mon Sep 17 00:00:00 2001 From: kilyanni Date: Fri, 10 Jul 2026 14:57:08 +0200 Subject: [PATCH] fix: create parent dirs on CompleteMultipartUpload --- src/storages/fs.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/storages/fs.rs b/src/storages/fs.rs index 28993d0..a3e4886 100644 --- a/src/storages/fs.rs +++ b/src/storages/fs.rs @@ -854,6 +854,12 @@ impl S3Storage for FileSystem { }; let object_path = trace_try!(self.get_object_path(&bucket, &key)); + // Create the key's parent dirs first, as put_object does; otherwise a + // prefixed key (e.g. simple/pkg/x.whl) fails File::create with + // NotFound and Complete returns 500. + if let Some(dir_path) = object_path.parent() { + trace_try!(fs::create_dir_all(&dir_path).await); + } let file = trace_try!(File::create(&object_path).await); let mut writer = BufWriter::new(file);