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

   **Describe the bug**
   
   The AWS multipart upload `put_part` implementation does not correctly 
retrieve the SHA256 checksum from the response if the upload is a copy. This 
causes the `complete()` operation to fail, since the checksums are not included 
in the complete payload.
   
   **To Reproduce**
   ```rust
       let s3 = AmazonS3Builder::from_env()
           .with_checksum_algorithm(Checksum::SHA256)
           .with_copy_if_not_exists(S3CopyIfNotExists::Multipart)
           .build()
           .unwrap();
   
       s3.copy_if_not_exists(&Path::from("src"), &Path::from("dst"))
           .await
           .unwrap();
   ```
   
   This results in:
   
   ```
   Status { status: 400, body: 
Some("<Error><Code>InvalidRequest</Code><Message>The upload was created using a 
sha256 checksum. The complete request must include the checksum for each part. 
It was missing for part 1 in the 
request.</Message><RequestId>MADJ5ZR2EMYYD5P2</RequestId><HostId>...</HostId></Error>")
 } }) }
   ```
   **Expected behavior**
   The object is copied.
   <!--
   A clear and concise description of what you expected to happen.
   -->
   
   **Additional context**
   


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