pub struct S3Config {
pub region: Option<String>,
pub endpoint: Option<String>,
pub addressing_style: AddressingStyle,
pub allow_http: bool,
pub access_key_id: Option<String>,
pub secret_access_key: Option<String>,
pub session_token: Option<String>,
pub partitioning: Partitioning,
pub endpoint_bucket_in_host: BucketInHost,
}Expand description
Non-secret S3 connection settings. Credentials are pulled from env / the
AWS credential chain — see DatasetConfig::resolved_creds.
Fields§
§region: Option<String>§endpoint: Option<String>Custom endpoint (MinIO, R2, Wasabi, LocalStack, …). Omit for AWS.
addressing_style: AddressingStylevirtual (default — bucket.host) or path (host/bucket/).
MinIO and most non-AWS providers require path.
allow_http: boolAllow plain-HTTP endpoints. Required for local MinIO over http://….
access_key_id: Option<String>Inline credentials. Strongly discouraged in production — prefer env vars (see module docs).
secret_access_key: Option<String>§session_token: Option<String>§partitioning: PartitioningHive partition-column handling for parquet sources. Defaults to
auto (detect from the path). See Partitioning.
endpoint_bucket_in_host: BucketInHostWhether the bucket is folded into a custom endpoint host for
virtual-hosted-style requests. Defaults to auto. See
BucketInHost.
Implementations§
Source§impl S3Config
impl S3Config
Sourcepub fn effective_endpoint(&self, bucket: &str) -> Option<String>
pub fn effective_endpoint(&self, bucket: &str) -> Option<String>
Resolve the endpoint URL to hand to the object store, optionally
folding bucket into the host for virtual-hosted-style requests so a
plain endpoint works the same way it does on DuckDB.
Returns None when no custom endpoint is configured (AWS default).
The bucket is only prepended when it isn’t already the leading host
label, so re-running this (or a config that already embeds the
bucket) never produces bucket.bucket.host.