update doc and comments
This commit is contained in:
parent
f0893b904d
commit
53888995bd
3 changed files with 12 additions and 9 deletions
|
@ -30,7 +30,7 @@ sled_flush_every_ms = 2000
|
|||
[s3_api]
|
||||
api_bind_addr = "[::]:3900"
|
||||
s3_region = "garage"
|
||||
root_domain = ".3.garage"
|
||||
root_domain = ".s3.garage"
|
||||
|
||||
[s3_web]
|
||||
bind_addr = "[::]:3902"
|
||||
|
@ -179,11 +179,13 @@ message that redirects the client to the correct region.
|
|||
|
||||
#### `root_domain`
|
||||
|
||||
The optionnal suffix to access bucket using vhost-style instead of path-style API calls.
|
||||
The optionnal suffix to access bucket using vhost-style in addition to path-style request.
|
||||
Note path-style requests are always enabled, whether or not vhost-style is configured.
|
||||
Configuring vhost-style S3 required a wildcard DNS entry, and possibly a wildcard TLS certificate,
|
||||
but might be required by softwares not supporting path-style requests.
|
||||
|
||||
For instance, if `root_domain` is `s3.garage.eu`, a bucket called `deuxfleurs.fr`
|
||||
can be interacted with with hostname `deuxfleurs.fr.s3.garage.eu`. Note however you
|
||||
can't interact with it using hostname `deuxfleurs.fr` directly.
|
||||
If `root_domain` is `s3.garage.eu`, a bucket called `my-bucket` can be interacted with
|
||||
using the hostname `my-bucket.s3.garage.eu`.
|
||||
|
||||
## The `[s3_web]` section
|
||||
|
||||
|
|
|
@ -263,7 +263,8 @@ async fn handler_inner(garage: Arc<Garage>, req: Request<Body>) -> Result<Respon
|
|||
}
|
||||
}
|
||||
|
||||
/// Extract the bucket name and the key name from an HTTP path and possibly Host header
|
||||
/// Extract the bucket name and the key name from an HTTP path and possibly a bucket provided in
|
||||
/// the host header of the request
|
||||
///
|
||||
/// S3 internally manages only buckets and keys. This function splits
|
||||
/// an HTTP path to get the corresponding bucket name and key.
|
||||
|
|
|
@ -3,9 +3,9 @@ use idna::domain_to_unicode;
|
|||
|
||||
/// Host to bucket
|
||||
///
|
||||
/// Convert a host, like "bucket.garage-site.tld" or "john.doe.com"
|
||||
/// to the corresponding bucket, resp. "bucket" and "john.doe.com"
|
||||
/// considering that ".garage-site.tld" is the "root domain".
|
||||
/// Convert a host, like "bucket.garage-site.tld" to the corresponding bucket "bucket",
|
||||
/// considering that ".garage-site.tld" is the "root domain". For domains not matching
|
||||
/// the provided root domain, no bucket is returned
|
||||
/// This behavior has been chosen to follow AWS S3 semantic.
|
||||
pub fn host_to_bucket<'a>(host: &'a str, root: &str) -> Option<&'a str> {
|
||||
let root = root.trim_start_matches('.');
|
||||
|
|
Loading…
Reference in a new issue