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

   **Describe the bug**
   S3 supports quite a few headers in system defined metadata and user defined 
metadata described in 
https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingMetadata.html#SysMetadata.
 When setting these headers as default headers, they are not considered in the 
signature calculation.
   
   As a result, S3 throws an error along the lines of
   ```
   <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n
   <Error>
        <Code>AccessDenied</Code>
        <Message>There were headers present in the request which were not 
signed</Message>
        <HeadersNotSigned>x-amz-meta-s1, x-amz-tagging</HeadersNotSigned>
        ...
   </Error>
   ```
   
   **To Reproduce**
   ```
   let s3 = AmazonS3Builder::new()
       .with_bucket_name(bucket)
       .with_client_options({
           ClientOptions::new().with_default_headers({
               let mut headers = HeaderMap::new();
               headers.insert("x-amz-meta-s1", "t1".parse().unwrap());
               headers.insert("x-amz-tagging", 
"Project=blue&Classification=confidential".parse().unwrap());
               headers
           })
       })
       .build()?;
   
   let store: Arc<dyn ObjectStore> = Arc::new(s3);
   
   store.put(&key.clone().into(), "content".into()).await?;
   println!("Uploaded file with key: {}", key);
   ```
   
   **Expected behavior**
   The request should succeed and S3 HeadObject should echo these headers back.
   
   **Additional context**
   N/A


-- 
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: github-unsubscr...@arrow.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to