apache / apache/arrow-rs-object-store

Checksum algorithm not supported with CompleteMultipartUpload to S3

Open
#709 0 comments 0 reactions 0 assignees View on GitHub
bug
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.