Skip to main content

Module s3

Module s3 

Source
Expand description

S3-compatible origin backend (#437).

Fetches blobs from {prefix?}{hex[0..2]}/{hex} keys in an S3 bucket via the official AWS SDK. The sharded key layout mirrors super::FilesystemOrigin so operators can aws s3 sync between a filesystem origin and an S3 origin without rewriting object names.

Supports plain AWS S3, Cloudflare R2, Backblaze B2, MinIO, and any other S3-compatible service via the endpoint_url + path_style knobs on S3OriginConfig. Credentials come from either explicit static keys or the AWS default credential chain (env, ~/.aws/credentials profile, container/instance role).

§TLS / HTTP layer

The SDK is configured to bring its own HTTP client built from aws_smithy_http_client over hyper-1 + rustls 0.23 + aws-lc-rs, matching the rest of the workspace. The SDK’s stock HTTP stack (hyper-0.14 + rustls 0.21 + ring) is suppressed via default-features = false on aws-sdk-s3 and aws-config — bringing it in would force a third parallel TLS implementation into the dep tree.

Structs§

S3Origin
Origin backed by an S3-compatible object store.
S3OriginConfig
Validated, runtime-ready configuration for an S3Origin.

Enums§

S3Credentials
How S3Origin obtains AWS credentials.