This commit is contained in:
trinity-1686a 2024-12-22 15:26:06 +01:00
parent 65e9dde8c9
commit c939d2a936
3 changed files with 11 additions and 13 deletions

View file

@ -330,13 +330,11 @@ impl Condition {
impl Redirect {
pub fn validate(&self) -> Result<(), Error> {
if self.replace_prefix.is_some() {
if self.replace_full.is_some() {
if self.replace_prefix.is_some() && self.replace_full.is_some() {
return Err(Error::bad_request(
"Bad XML: both ReplaceKeyPrefixWith and ReplaceKeyWith are set",
));
}
}
if let Some(ref protocol) = self.protocol {
if protocol.0 != "http" && protocol.0 != "https" {
return Err(Error::bad_request("Bad XML: invalid protocol"));

View file

@ -90,21 +90,21 @@ mod v08 {
let mut res = String::new();
if let Some(hostname) = &self.hostname {
if let Some(protocol) = &self.protocol {
res.push_str(&protocol);
res.push_str(protocol);
res.push_str("://");
} else {
res.push_str("//");
}
res.push_str(&hostname);
res.push_str(hostname);
}
res.push('/');
if let Some(replace_key_prefix) = &self.replace_key_prefix {
res.push_str(&replace_key_prefix);
res.push_str(replace_key_prefix);
if let Some(suffix) = suffix {
res.push_str(suffix)
}
} else if let Some(replace_key) = &self.replace_key {
res.push_str(&replace_key)
res.push_str(replace_key)
}
res
}

View file

@ -476,8 +476,8 @@ impl RoutingResult {
/// which is also AWS S3 behavior.
///
/// Check: https://docs.aws.amazon.com/AmazonS3/latest/userguide/IndexDocumentSupport.html
fn path_to_keys<'a>(
path: &'a str,
fn path_to_keys(
path: &str,
index: &str,
routing_rules: &[RoutingRule],
) -> Result<RoutingResult, Error> {
@ -488,7 +488,7 @@ fn path_to_keys<'a>(
None => return Err(Error::BadRequest("Path must start with a / (slash)".into())),
};
let is_bucket_root = base_key.len() == 0;
let is_bucket_root = base_key.is_empty();
let is_trailing_slash = path_utf8.ends_with("/");
let key = if is_bucket_root || is_trailing_slash {