fix: reject composite CRC64NVME completion

Remove the remaining type-only canonicalization at CompleteMultipartUpload while preserving legacy uploads stored as FULL_OBJECT.

Signed-off-by: Feng Ruohang <rh@vonng.com>
This commit is contained in:
Feng Ruohang
2026-08-29 18:36:02 +08:00
parent 2aea7fe9c4
commit 32b2aa49f1
2 changed files with 7 additions and 10 deletions
+1 -7
View File
@@ -1185,13 +1185,7 @@ func (er erasureObjects) CompleteMultipartUpload(ctx context.Context, bucket str
}
}
if opts.wantChecksumType != "" {
providedObjectType := opts.wantChecksumType
// CRC64NVME is always canonicalized to FULL_OBJECT. Preserve this
// behavior until its exact AWS wire semantics have been probed.
if checksumType.Base().Is(hash.ChecksumCRC64NVME) {
providedObjectType = xhttp.AmzChecksumTypeFullObject
}
if providedObjectType != expectedType.ObjType() {
if opts.wantChecksumType != expectedType.ObjType() {
return oi, completeMultipartChecksumTypeMismatch(opts.wantChecksumType, expectedType.ObjType())
}
}