s3: validate per-part checksums in CompleteMultipartUpload

Parse the Checksum* elements of each completed part and enforce what AWS
does for uploads created with x-amz-checksum-algorithm: every part must
carry a checksum in the complete request (InvalidRequest when missing,
BadDigest when it differs from the stored part checksum), and an
x-amz-checksum-type header must match the upload resolved checksum type
(BadDigest). Add the issue-11401 reproduction as a regression test.
This commit is contained in:
Chris Lu committed 2026-09-19 22:18:13 -07:00
1 parent 4eb30f3b5b
commit e9d2bdd02b
4 files changed
+168 -2

No files matched your search

@@ -645,6 +645,7 @@ type CompleteMultipartUpload struct {
type CompletedPart struct {
ETag string
PartNumber int
ChecksumResult
}
// handleSSES3MultipartHeaders handles SSE-S3 multipart upload header setup to reduce nesting complexity