Skip to content

feat(multipart): list and abort incomplete uploads - #321

Merged
cxymds merged 1 commit into
mainfrom
cxymds/feat-multipart-cli
Jul 24, 2026
Merged

feat(multipart): list and abort incomplete uploads#321
cxymds merged 1 commit into
mainfrom
cxymds/feat-multipart-cli

Conversation

@cxymds

@cxymds cxymds commented Jul 24, 2026

Copy link
Copy Markdown
Member

Summary

  • implement ls --incomplete for bucket/prefix listings with complete key/upload-marker pagination
  • implement exact and explicitly recursive rm --incomplete, including dry-run and idempotent NoSuchUpload handling
  • add typed core/S3 multipart APIs, deterministic output-v3/table/quiet results, per-item partial failures, cancellation, bounded concurrency, and bounded retries
  • detect stalled/cyclic pagination before unsafe cleanup

Validation

  • 13 end-to-end multipart command tests covering empty, multi-page, prefix, recursive, dry-run, output modes, access denial, abort, and retry
  • unit tests for retry, concurrency, partial results, interruption, and exit codes
  • cargo fmt --all --check
  • cargo clippy --workspace -- -D warnings
  • cargo test --workspace
  • git diff --check

Dependency

Requires rustfs/rustfs#5195 for correct RustFS bucket/prefix multipart enumeration.

Closes rustfs/backlog#1366
Refs rustfs/backlog#1405

BREAKING: no

@cxymds
cxymds merged commit 6f5ece3 into main Jul 24, 2026
17 checks passed
@cxymds
cxymds deleted the cxymds/feat-multipart-cli branch July 24, 2026 13:28
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