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

   **Describe the bug**
   I'm trying to use a `ParquetRecordBatchStream<ParquetObjectReader>` to read 
from an `AmazonS3` object store, but receiving a `SignatureDoesNotMatch` 
response.  In that, I'm seeing the canonical headers included in the signed 
request do not include the value for the `range` header.  I'm getting the same 
response using the aws cli, so I filed [this 
issue](https://github.com/aws/aws-cli/issues/9682).  
   
   **To Reproduce**
   I followed the example 
[here](https://arrow.apache.org/rust/parquet/arrow/async_reader/store/struct.ParquetObjectReader.html),
 (albeit with an `AmazonS3Builder` instead of Azure):
   ```
   // Populate configuration from environment
   let storage_container = 
Arc::new(MicrosoftAzureBuilder::from_env().build().unwrap());
   let location = Path::from("path/to/blob.parquet");
   let meta = storage_container.head(&location).await.unwrap();
   println!("Found Blob with {}B at {}", meta.size, meta.location);
   
   // Show Parquet metadata
   let reader = ParquetObjectReader::new(storage_container, 
meta.location).with_file_size(meta.size);
   let builder = ParquetRecordBatchStreamBuilder::new(reader).await.unwrap();
   print_parquet_metadata(&mut stdout(), builder.metadata());
   ```
   
   **Expected behavior**
   I'd expect to be able to read the parquet file
   
   **Additional context**
   See the [linked issue](https://github.com/aws/aws-cli/issues/9682) for some 
more details/context, like the response I'm getting. 
   
   I forked the repo & added `"range"` to the list of headers to skip 
canonicalizing 
[here](https://github.com/apache/arrow-rs-object-store/blob/main/src/aws/credential.rs#L420)
 in the `aws::credentials::canonicalize_headers` function, and that fixes my 
signature error, but instead returns a [`NotPartial` 
error](https://github.com/apache/arrow-rs-object-store/blob/06d02d589456dbe98f853263edb10c202fc97b82/src/client/get.rs#L123),
 i.e. the response was not a partial of the file, as requested by the range.   
So I'm posting this as I continue to work through this.  I'll post a draft PR 
if I get to the bottom of it.


-- 
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