Skip to content

S3: compute request checksums only when required#42

Merged
sduchesneau merged 2 commits into
developfrom
fix/s3-request-checksum-when-required
Jul 9, 2026
Merged

S3: compute request checksums only when required#42
sduchesneau merged 2 commits into
developfrom
fix/s3-request-checksum-when-required

Conversation

@sduchesneau

Copy link
Copy Markdown
Contributor

Problem

AWS SDK Go v2 service/s3 ≥ v1.73.0 computes CRC32 request checksums on PUT/multipart uploads by default. Non-AWS S3-compatible backends (MinIO, Ceph, GCS-S3, etc.) reject those parts, so uploads fail. Customers had to work around it with the env var AWS_REQUEST_CHECKSUM_CALCULATION=when_required.

Ref: aws/aws-sdk-go-v2#2960

Fix

Set o.RequestChecksumCalculation = aws.RequestChecksumCalculationWhenRequired on the S3 client — the programmatic equivalent of the env var. Reverts to the pre-v1.73.0 behavior (checksum only when the operation requires it), no ops workaround needed.

The existing DisableLogOutputChecksumValidationSkipped only silenced GET-side warning logs; it never touched request-side checksum calculation.

🤖 Generated with Claude Code

Since service/s3 v1.73.0 the SDK computes CRC32 checksums on
PUT/multipart by default, breaking non-AWS S3-compatible backends
that reject the parts. Set RequestChecksumCalculation to WhenRequired
so no AWS_REQUEST_CHECKSUM_CALCULATION env var workaround is needed.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@sduchesneau sduchesneau requested a review from UlysseCorbeil July 9, 2026 19:28
@sduchesneau sduchesneau merged commit d54b704 into develop Jul 9, 2026
3 checks passed
@sduchesneau sduchesneau deleted the fix/s3-request-checksum-when-required branch July 9, 2026 20:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants