aboutsummaryrefslogtreecommitdiff
path: root/src/api
diff options
context:
space:
mode:
authorAlex Auvolat <alex@adnab.me>2024-02-09 14:15:29 +0100
committerAlex Auvolat <alex@adnab.me>2024-02-09 14:15:29 +0100
commit10bc2ead6015bf446451015ee73e902c3fd5e9a9 (patch)
treee360185ee2a5d2ae5d1246ee6c5e6b161e88e03c /src/api
parent0c7ce001c907791518f93fd9d2db01eebc517c51 (diff)
downloadgarage-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.rs6
-rw-r--r--src/api/s3/router.rs8
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>,