diff options
author | Alex Auvolat <alex@adnab.me> | 2024-02-09 14:15:29 +0100 |
---|---|---|
committer | Alex Auvolat <alex@adnab.me> | 2024-02-09 14:15:29 +0100 |
commit | 10bc2ead6015bf446451015ee73e902c3fd5e9a9 (patch) | |
tree | e360185ee2a5d2ae5d1246ee6c5e6b161e88e03c /src/api | |
parent | 0c7ce001c907791518f93fd9d2db01eebc517c51 (diff) | |
download | garage-10bc2ead6015bf446451015ee73e902c3fd5e9a9.tar.gz garage-10bc2ead6015bf446451015ee73e902c3fd5e9a9.zip |
[multi-char-delimiter-692] allow multi-character delimiters in List* (fix #692)
Diffstat (limited to 'src/api')
-rw-r--r-- | src/api/s3/api_server.rs | 6 | ||||
-rw-r--r-- | src/api/s3/router.rs | 8 |
2 files changed, 7 insertions, 7 deletions
diff --git a/src/api/s3/api_server.rs b/src/api/s3/api_server.rs index 4b815f79..0065ca59 100644 --- a/src/api/s3/api_server.rs +++ b/src/api/s3/api_server.rs @@ -260,7 +260,7 @@ impl ApiHandler for S3ApiServer { common: ListQueryCommon { bucket_name, bucket_id, - delimiter: delimiter.map(|d| d.to_string()), + delimiter, page_size: max_keys.unwrap_or(1000).clamp(1, 1000), prefix: prefix.unwrap_or_default(), urlencode_resp: encoding_type.map(|e| e == "url").unwrap_or(false), @@ -290,7 +290,7 @@ impl ApiHandler for S3ApiServer { common: ListQueryCommon { bucket_name, bucket_id, - delimiter: delimiter.map(|d| d.to_string()), + delimiter, page_size: max_keys.unwrap_or(1000).clamp(1, 1000), urlencode_resp: encoding_type.map(|e| e == "url").unwrap_or(false), prefix: prefix.unwrap_or_default(), @@ -323,7 +323,7 @@ impl ApiHandler for S3ApiServer { common: ListQueryCommon { bucket_name, bucket_id, - delimiter: delimiter.map(|d| d.to_string()), + delimiter, page_size: max_uploads.unwrap_or(1000).clamp(1, 1000), prefix: prefix.unwrap_or_default(), urlencode_resp: encoding_type.map(|e| e == "url").unwrap_or(false), diff --git a/src/api/s3/router.rs b/src/api/s3/router.rs index 821b0e07..05882885 100644 --- a/src/api/s3/router.rs +++ b/src/api/s3/router.rs @@ -170,7 +170,7 @@ pub enum Endpoint { }, ListBuckets, ListMultipartUploads { - delimiter: Option<char>, + delimiter: Option<String>, encoding_type: Option<String>, key_marker: Option<String>, max_uploads: Option<usize>, @@ -178,7 +178,7 @@ pub enum Endpoint { upload_id_marker: Option<String>, }, ListObjects { - delimiter: Option<char>, + delimiter: Option<String>, encoding_type: Option<String>, marker: Option<String>, max_keys: Option<usize>, @@ -188,7 +188,7 @@ pub enum Endpoint { // This value should always be 2. It is not checked when constructing the struct list_type: String, continuation_token: Option<String>, - delimiter: Option<char>, + delimiter: Option<String>, encoding_type: Option<String>, fetch_owner: Option<bool>, max_keys: Option<usize>, @@ -196,7 +196,7 @@ pub enum Endpoint { start_after: Option<String>, }, ListObjectVersions { - delimiter: Option<char>, + delimiter: Option<String>, encoding_type: Option<String>, key_marker: Option<String>, max_keys: Option<u64>, |