rc replicate manages bucket replication configuration and status. It is a legacy-compatible command; prefer rc bucket replication for new scripts.
rc [GLOBAL OPTIONS] replicate <COMMAND>
rc replicate add [OPTIONS] --remote-bucket <TARGET_ALIAS/BUCKET> <SOURCE_ALIAS/BUCKET>
rc replicate update [OPTIONS] --id <ID> <SOURCE_ALIAS/BUCKET>
rc replicate list [OPTIONS] <SOURCE_ALIAS/BUCKET>
rc replicate status [OPTIONS] <SOURCE_ALIAS/BUCKET>
rc replicate diff [--prefix <PREFIX>] <SOURCE_ALIAS/BUCKET>
rc replicate remove [OPTIONS] <SOURCE_ALIAS/BUCKET>
rc replicate export [OPTIONS] <SOURCE_ALIAS/BUCKET>
rc replicate import [OPTIONS] <SOURCE_ALIAS/BUCKET> <FILE>
rc bucket replication check [OPTIONS] <SOURCE_ALIAS/BUCKET> --yes
rc bucket replication resync start [OPTIONS] <SOURCE_ALIAS/BUCKET> --yes
rc bucket replication resync status [OPTIONS] <SOURCE_ALIAS/BUCKET>| Parameter | Description |
|---|---|
SOURCE_ALIAS/BUCKET |
Source bucket for replication. |
--remote-bucket TARGET_ALIAS/BUCKET |
Destination bucket for a new rule. |
--id |
Rule identifier to update or remove. |
--replicate |
Comma-separated flags: delete, delete-marker, existing-objects. |
--priority |
Rule priority. Defaults to 1 for new rules. |
--storage-class |
Destination storage class override. |
--bandwidth |
Bandwidth limit in bytes per second; 0 means unlimited. |
--sync |
Enable synchronous replication. |
--prefix |
Key prefix filter for rules or a replication diff scan. |
--healthcheck-seconds |
Health check interval. Defaults to 60 for new rules. |
--disable-proxy |
Disable replication proxy. |
--all |
Remove all rules. |
--force |
Force operation even if capability detection fails. |
--target-arn |
Select one configured replication target for resync start or status. |
--older-than |
Resync objects older than a positive duration such as 7d10h31s. |
--reset-id |
Supply a caller-controlled resync ID; omit it to use the server-generated ID. |
--yes |
Confirm an active target check or resync start. |
rc bucket version enable local/reports
rc bucket version enable backup/reports
rc bucket replication add local/reports --remote-bucket backup/reports --replicate delete,existing-objects
rc replicate status local/reports
rc bucket replication diff local/reports --prefix quarterly/2026/
rc replicate export local/reports > replication.json
rc bucket replication check local/reports --yes
rc bucket replication resync start local/reports --target-arn arn:rustfs:replication::id:archive --older-than 30d --yes
rc bucket replication resync status local/reports --target-arn arn:rustfs:replication::id:archiveReplication generally requires versioning on source and destination buckets. The target bucket is resolved through its own alias, so configure both source and destination aliases before adding rules.
replication diff calls the RustFS Admin API to scan object versions that are pending or failed replication. It reports object keys, version IDs, delete-marker state, sizes, replication statuses, and last-modified timestamps. The request has no body and may be narrowed with --prefix.
The command accepts at most 8 MiB for either a successful or error response. JSON output uses output schema v3 with the replication family and diff operation. Unknown server fields are preserved under extensions.
The server may stop after its bounded scan and return truncated: true. Such output is explicitly partial and non-resumable. Narrow --prefix and run the command again; do not interpret an empty truncated result as proof that no backlog exists. The command does not provide time-range, metrics, MRF, or resume-token behavior.
replication check is an active validation probe, not a read-only configuration check. RustFS writes a small temporary object to every selected target and exercises replication delete permissions before cleaning it up. A target-side failure can prevent complete cleanup, so the command requires --yes. A successful beta.10 response is empty; a failed response describes only the first target failure selected by the server. The CLI does not fabricate a per-target validation report.
Use least-privilege source credentials with s3:PutReplicationConfiguration for replication check. Resync start and status require s3:ResetBucketReplicationState; the CLI does not call an Admin-v4 capability endpoint before these signed S3 requests.
resync start uses RustFS signed S3 extension routes rather than the Admin API. Omitting --target-arn lets the server select the only enabled target with existing-object replication; multiple eligible targets require an explicit ARN. Omitting --reset-id preserves the ID generated by the server. Starting another resync for an already-running target is not an atomic conflict-checked operation in RustFS beta.10.
resync status is stateless on the client and reads persisted server status. The last_updated_at field corresponds to RustFS beta.10's EndTime response field, which is populated from the latest update even while a resync is pending or ongoing. The optional server error field is returned when present, but beta.10 does not reliably aggregate or persist it; counts and sizes are the durable failure indicators. An unknown target ARN produces a successful empty target list. Bucket resync cancellation is not exposed because beta.10 has no public cancel route.
JSON output for check, start, and status uses schema v3 with type replication_operations. Response and error bodies are limited to 1 MiB.
Global options shown in command syntax use the same meaning everywhere:
| Option | Description |
|---|---|
--format auto|human|json |
Select automatic, human-readable, or JSON output. |
--json |
Emit JSON output where the command supports structured output. |
--no-color |
Disable terminal colors. |
--no-progress |
Disable progress bars. |
-q, --quiet |
Suppress non-error output. |
--debug |
Enable debug logging. |