aboutsummaryrefslogtreecommitdiff
path: root/src/api/s3/list.rs
diff options
context:
space:
mode:
authorAlex Auvolat <alex@adnab.me>2022-05-13 19:18:51 +0200
committerAlex Auvolat <alex@adnab.me>2022-05-13 19:18:51 +0200
commitea325d78d36d19f59a0849ace1f4567e2b095bd7 (patch)
treebfc05dd1f8df3d1fae84a1af433f4ae56dbc2c31 /src/api/s3/list.rs
parentec16d166f940f59098ae5cc0c0b3d8298f1bcc78 (diff)
downloadgarage-ea325d78d36d19f59a0849ace1f4567e2b095bd7.tar.gz
garage-ea325d78d36d19f59a0849ace1f4567e2b095bd7.zip
More error refactoring
Diffstat (limited to 'src/api/s3/list.rs')
-rw-r--r--src/api/s3/list.rs12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/api/s3/list.rs b/src/api/s3/list.rs
index b4ba5bcd..12f6149d 100644
--- a/src/api/s3/list.rs
+++ b/src/api/s3/list.rs
@@ -16,8 +16,8 @@ use garage_model::s3::version_table::Version;
use garage_table::{EmptyKey, EnumerationOrder};
use crate::encoding::*;
-use crate::s3::error::*;
use crate::helpers::key_after_prefix;
+use crate::s3::error::*;
use crate::s3::put as s3_put;
use crate::s3::xml as s3_xml;
@@ -582,11 +582,17 @@ impl ListObjectsQuery {
// representing the key to start with.
(Some(token), _) => match &token[..1] {
"[" => Ok(RangeBegin::IncludingKey {
- key: String::from_utf8(base64::decode(token[1..].as_bytes())?)?,
+ key: String::from_utf8(
+ base64::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())?)?,
+ key: String::from_utf8(
+ base64::decode(token[1..].as_bytes())
+ .ok_or_bad_request("Invalid continuation token")?,
+ )?,
}),
_ => Err(Error::bad_request("Invalid continuation token".to_string())),
},