[pbs-devel] [PATCH proxmox] s3-client: properly uri encode request query parameters
Christian Ebner
c.ebner at proxmox.com
Thu Aug 21 14:04:35 CEST 2025
Slashes in object keys as part of the url must not be uri encoded.
They should however be for the query parameters.
Fix this by correctly setting the flag signaling the
aws_sign_v4_uri_encode helper that this is not to be encoded as
object key.
Signed-off-by: Christian Ebner <c.ebner at proxmox.com>
---
Noticed in the ceph RGW debug log output while checking an unrelated
issue.
proxmox-s3-client/src/client.rs | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/proxmox-s3-client/src/client.rs b/proxmox-s3-client/src/client.rs
index 3bc2a672..7a3fb89a 100644
--- a/proxmox-s3-client/src/client.rs
+++ b/proxmox-s3-client/src/client.rs
@@ -698,10 +698,10 @@ impl S3Client {
// No further input validation as http::uri::Builder will check path and query
let mut query_iter = query.iter().peekable();
while let Some((key, value)) = query_iter.next() {
- let key = aws_sign_v4_uri_encode(key, true);
+ let key = aws_sign_v4_uri_encode(key, false);
path_and_query.push_str(&key);
if !value.is_empty() {
- let value = aws_sign_v4_uri_encode(value, true);
+ let value = aws_sign_v4_uri_encode(value, false);
path_and_query.push('=');
path_and_query.push_str(&value);
}
--
2.47.2
More information about the pbs-devel
mailing list