tustvold opened a new issue, #223:
URL: https://github.com/apache/arrow-rs-object-store/issues/223

   **Describe the bug**
   <!--
   A clear and concise description of what the bug is.
   -->
   
   Attempting to perform a list request using a prefix containing a space 
results in a signature error. 
   
   ```
   <Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we 
calculated does not match the signature you provided. Check your key and 
signing method
   ...
   ```
   
   This is because IAM requires always percent encoding all spaces - 
https://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html
   
   > Percent-encode all other characters with %XY, where X and Y are 
hexadecimal characters (0-9 and uppercase A-F). For example, the space 
character must be encoded as %20 (not using '+', as some encoding schemes do)
   
   This is normally the case as we explicitly percent encode paths - 
https://github.com/apache/arrow-rs/blob/master/object_store/src/aws/client.rs#L471
   
   However, we delegate to reqwest for percent encoding of query parameters, 
and it uses `+` instead of `%20`.
   
   **To Reproduce**
   <!--
   Steps to reproduce the behavior:
   -->
   
   **Expected behavior**
   <!--
   A clear and concise description of what you expected to happen.
   -->
   
   **Additional context**
   <!--
   Add any other context about the problem here.
   -->


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to