apache / apache/arrow-rs-object-store
Checksum algorithm not supported with CompleteMultipartUpload to S3
- Dominant language
- Rust
- Stars
- 322
- Forks
- 212
- Avg merge
- 5d 2h
- Merged PRs (30d)
- 10
Description
**Describe the bug**
When doing a MPU to S3 with checksum algorithm sha256, got the error
```
BadDigestThe sha256 you specified did not match the calculated checksum.
```
**To Reproduce**
```
use object_store::ObjectStoreExt;
use object_store::aws::AmazonS3Builder;
use object_store::path::Path;
use tracing_subscriber::EnvFilter;
#[tokio::main]
async fn main() {
let client = AmazonS3Builder::from_env()
.with_bucket_name("bucket-name")
.with_region("us-east-1")
.with_checksum_algorithm(object_store::aws::Checksum::SHA256)
.build()
.unwrap();
let mut upload = client.put_multipart(&Path::from("test-mpu")).await.unwrap();
let res = upload.complete().await.unwrap();
println!("Upload complete: {:?}", res);
}
```
**Expected behavior**
No error.
**Additional context**
Contributor guide
Research direction
Start with the provided Rust reproduction using AmazonS3Builder, with_checksum_algorithm(Checksum::SHA256), put_multipart, and upload.complete(). Trace the multipart completion request and checksum handling, then verify that the reproduction completes without S3 returning BadDigest.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws, rust
- Domain
- cloud
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 68/100