Skip to content

feat(transfer): add get and put compatibility aliases - #314

Merged
cxymds merged 2 commits into
mainfrom
cxymds/feat-get-put-aliases
Jul 24, 2026
Merged

feat(transfer): add get and put compatibility aliases#314
cxymds merged 2 commits into
mainfrom
cxymds/feat-get-put-aliases

Conversation

@cxymds

@cxymds cxymds commented Jul 24, 2026

Copy link
Copy Markdown
Member

Summary

  • add top-level rc get and rc put compatibility commands
  • route both commands through the existing cp planner and execution path
  • enforce download/upload direction before any remote request
  • keep non-existent local paths containing / from being misclassified as remote aliases
  • add parser, direction, exit-code/equivalence, help-contract, and documentation coverage

Why

RustFS CLI has the canonical copy implementation, but the mc-compatible get and put entry points from rustfs/backlog#1382 were still missing. Thin direction-aware wrappers provide compatibility without duplicating transfer behavior.

User impact

rc get accepts exactly one remote source and a local target. rc put accepts one or more local sources and a remote target. Retry, progress, errors, fidelity options, and output remain identical to rc cp because all commands use the same implementation.

BREAKING change assessment

BREAKING: no. These are new compatibility entry points and do not change the existing rc cp interface or execution behavior. The marker is included because this PR updates protected command reference documentation.

Validation

  • cargo fmt --all --check
  • cargo clippy --workspace --all-targets -- -D warnings
  • cargo test --workspace
  • git diff --check

Closes rustfs/backlog#1485
Refs rustfs/backlog#1382

@cxymds
cxymds marked this pull request as ready for review July 24, 2026 11:42
@cxymds
cxymds merged commit effd4fd into main Jul 24, 2026
17 checks passed
@cxymds
cxymds deleted the cxymds/feat-get-put-aliases branch July 24, 2026 12:04
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