aboutsummaryrefslogtreecommitdiff
path: root/src/api/s3/list.rs
diff options
context:
space:
mode:
authorAlex Auvolat <alex@adnab.me>2023-01-26 16:20:41 +0100
committerAlex Auvolat <alex@adnab.me>2023-01-26 16:20:41 +0100
commit94d559ae00bdb899c4463667a9d950b27e5bb23c (patch)
treea734a4d05cbedfaaff4f3bf63a0b659499b797bb /src/api/s3/list.rs
parentc7d0ad0aa0e492b913c5dda8ff1a7ad5a579fb3a (diff)
parent5fb383fe4c248181e27df12a57849886e50bacb7 (diff)
downloadgarage-94d559ae00bdb899c4463667a9d950b27e5bb23c.tar.gz
garage-94d559ae00bdb899c4463667a9d950b27e5bb23c.zip
Merge branch 'main' into report-disk-usage
Diffstat (limited to 'src/api/s3/list.rs')
-rw-r--r--src/api/s3/list.rs11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/api/s3/list.rs b/src/api/s3/list.rs
index e5f486c8..5cb0d65a 100644
--- a/src/api/s3/list.rs
+++ b/src/api/s3/list.rs
@@ -3,6 +3,7 @@ use std::collections::{BTreeMap, BTreeSet};
use std::iter::{Iterator, Peekable};
use std::sync::Arc;
+use base64::prelude::*;
use hyper::{Body, Response};
use garage_util::data::*;
@@ -129,11 +130,11 @@ pub async fn handle_list(
next_continuation_token: match (query.is_v2, &pagination) {
(true, Some(RangeBegin::AfterKey { key })) => Some(s3_xml::Value(format!(
"]{}",
- base64::encode(key.as_bytes())
+ BASE64_STANDARD.encode(key.as_bytes())
))),
(true, Some(RangeBegin::IncludingKey { key, .. })) => Some(s3_xml::Value(format!(
"[{}",
- base64::encode(key.as_bytes())
+ BASE64_STANDARD.encode(key.as_bytes())
))),
_ => None,
},
@@ -583,14 +584,16 @@ impl ListObjectsQuery {
(Some(token), _) => match &token[..1] {
"[" => Ok(RangeBegin::IncludingKey {
key: String::from_utf8(
- base64::decode(token[1..].as_bytes())
+ BASE64_STANDARD
+ .decode(token[1..].as_bytes())
.ok_or_bad_request("Invalid continuation token")?,
)?,
fallback_key: None,
}),
"]" => Ok(RangeBegin::AfterKey {
key: String::from_utf8(
- base64::decode(token[1..].as_bytes())
+ BASE64_STANDARD
+ .decode(token[1..].as_bytes())
.ok_or_bad_request("Invalid continuation token")?,
)?,
}),