mirror of
https://github.com/rustfs/rustfs.git
synced 2026-09-03 06:37:34 +08:00
refactor(ecstore): shared remote S3 client builder and ODM source client (#7067)
* refactor(ecstore): extract shared remote S3 client builder Move the aws_sdk_s3 client construction out of bucket_target_sys into bucket/remote_s3_client.rs: endpoint assembly, credential provider, path-style selection, custom CA / skip-TLS transports and the outbound SSRF gate now build from a neutral RemoteS3EndpointSpec so replication targets and the upcoming on-demand migration source client share one policy. Replication builds its client through From<&BucketTarget>; the gate keeps its relaxed semantics (private allowed, loopback only behind RUSTFS_REPLICATION_ALLOW_LOOPBACK_TARGET) verbatim. The builder also gains optional connect/read timeouts and a User-Agent suffix interceptor, both unset for replication. Refs rustfs/backlog#2149 * feat(ecstore): add on-demand migration SourceClient Add bucket/on_demand_migration/source_client.rs on top of the shared remote S3 builder: HEAD, ranged streaming GET, ListObjectsV2 with source-prefix mapping, GetObjectTagging and an admin probe. Every request carries the x-rustfs-/x-minio-source-proxy-request anti-loop markers and a RustFS-OnDemandMigration/<version> User-Agent suffix; SSE-C source objects are rejected as unsupported. SourceError classifies SDK failures (not found, access denied, throttled, timeout, connect, server error) with retryability and a stable metrics label. Debug output redacts credentials. Refs rustfs/backlog#2149 * docs(operations): point outbound policy at shared remote S3 client builder
This commit is contained in:
@@ -5,7 +5,6 @@
|
||||
# scripts/check_error_other_format_ratchet.sh --update-baseline. A PR that
|
||||
# raises a count or adds a file is introducing a new quorum-bucketing hazard
|
||||
# and must carry an explicit exemption rationale in its description.
|
||||
2|crates/ecstore/src/bucket/bucket_target_sys.rs
|
||||
4|crates/ecstore/src/bucket/lifecycle/bucket_lifecycle_ops.rs
|
||||
3|crates/ecstore/src/bucket/lifecycle/durable_namespace.rs
|
||||
2|crates/ecstore/src/bucket/lifecycle/metadata_boundary.rs
|
||||
|
||||
Reference in New Issue
Block a user