Skip to content

Fix S3 directory transfers and sync safety - #34

Merged
jhd3197 merged 2 commits into
devfrom
codex/s3-directory-safety
Oct 9, 2026
Merged

jhd3197 merged 2 commits into
devfrom
codex/s3-directory-safety

Conversation

@jhd3197

@jhd3197 jhd3197 commented Oct 9, 2026 •

Copy link
Copy Markdown
Owner

Problem and behavior

S3 directory markers were treated as files during downloads, producing object head errors. Preserve exact S3 keys and folder markers across listing, copy, rename, deletion, search, and disk scans; sync now retains empty folders. Unicode, spaces, and percent characters remain intact.

Abort sync planning on incomplete source scans and defer mirror deletions until copies finish successfully. CLI copy honors explicit destination filenames, stages downloads before replacement, aborts failed multipart uploads, and returns failures for incomplete hashes and failed deletions.

Fixes #33.

Validation

  • Local Moto audit: 55/55 CLI checks, including pagination and injected listing, download, upload, and hashing failures.
  • Windows: 246 library tests and 7 CLI tests passed. One existing SSH-key ACL test was excluded on Windows; CI runs the unfiltered library suite on Linux.
  • Three live S3 emulator transfer tests passed, including directory markers, Unicode bytes, and 200 MiB multipart/ranged transfer with a changed-source resume.
  • TypeScript and CLI build passed.
  • Enable CI for dev and run Rust tests plus the S3 CLI audit on PRs. See docs/s3-testing.md for reproducible setup and limits.

Wasabi itself has not been tested. Recursive and remote-to-remote CLI cp remain unsupported; use sync for directory transfers.

@jhd3197
jhd3197 merged commit 28e49bb into dev Oct 9, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant