rustfs / rustfs/rustfs

Feature request: inbound / pull replication from a generic S3 source

Open
#6,827 0 comments 0 reactions 1 assignee View on GitHub

@reatang is already working on this.

Since Aug 29, 2026.

enhancement feature priority-high
Dominant language
Rust
Stars
33.3k
Forks
1.5k
Avg merge
2h 57m
Merged PRs (30d)
962

Description

This issue asks whether generic-S3 inbound replication is planned, or whether an external copier is the intended architecture.

Describe the request

RustFS bucket replication is outbound only (RustFS pushes to a remote S3 endpoint). There is no native pull: RustFS does not watch or scan a remote generic S3 bucket and import objects.

Site replication is RustFS-to-RustFS and uses a RustFS-only admin join that a generic S3 service does not implement.

Discussion #2649 is about copying to other object stores. Merged #6172 proxies GET/HEAD to outbound replication targets, which is not inbound hydrate from an external source of truth.

Environment

Live tests used a locally compiled binary, not a container image.

  • Commit: b15928220f53818164c2cd4e2c236d5c1f5aada6 (1.0.0-rc.3)

  • Binary reports: rustfs @b15928220

  • Build: debug, linux-x86_64

  • Rust compiler: 1.98.0

  • Binary SHA-256: 224b8141b9151db698831adf35b3e47581f8325b932565b2b10499fee437efe2

  • Destination: Wasabi generic S3

  • Wasabi region: us-west-1

  • Wasabi endpoint: https://s3.us-west-1.wasabisys.com

  • Docs: bucket replication (outbound), site replication (RustFS-to-RustFS)

Why it matters

A deployment that treats an external S3 store as authoritative cannot turn on RustFS replication to fill a local RustFS bucket. Hydrate has to be a separate client. A roadmap clarification would establish whether native inbound pull or an external copier is the supported design.

Ask

Is inbound / pull replication from a generic S3 source planned, or is an external copier the intended architecture?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.