Skip to content

fix: return checksums from CopyObject - #70

Merged
Vonng merged 1 commit into
mainfrom
codex/fix-copyobject-response-checksum
Aug 24, 2026
Merged

fix: return checksums from CopyObject#70
Vonng merged 1 commit into
mainfrom
codex/fix-copyobject-response-checksum

Conversation

@Vonng

@Vonng Vonng commented Aug 24, 2026

Copy link
Copy Markdown
Member

Summary

  • add the five checksum fields supported by SILO plus ChecksumType to CopyObjectResponse
  • populate CopyObjectResult from the committed destination ObjectInfo, including encrypted checksum metadata
  • verify response values for every supported algorithm, default CRC64NVME, SSE-C, SSE-S3, compressed destinations, multipart-composite sources, and boundary sizes
  • register the six exported response fields in the compatibility baseline

Why

SILO stored CopyObject checksums and exposed them through HEAD/GET, but the successful CopyObject XML contained only LastModified and ETag. AWS CopyObjectResult defines the checksum elements, and SDK callers expect them when the destination has a checksum.

This response-contract fix is deliberately separate from #66, which corrected the byte domain covered by the stored checksum.

Downstream

Active minio-go also drops these XML elements because its private copyObjectResult contains only ETag and LastModified. The client follow-up is tracked upstream as minio/minio-go#2294.

MCLI and SILO Console require no direct changes: MCLI ignores CopyObject UploadInfo, while Console only passes it through.

Verification

  • response assertions across the complete Issue 63 API matrix
  • focused race tests
  • go test ./cmd -count=1
  • go vet ./cmd
  • golangci-lint v2.13.1: 0 issues
  • regenerated compatibility baseline followed by make rebrand-guard

Fixes #68

Signed-off-by: Feng Ruohang <rh@vonng.com>
@Vonng
Vonng force-pushed the codex/fix-copyobject-response-checksum branch from 1d454e7 to 5d215dc Compare August 24, 2026 12:46
@Vonng
Vonng merged commit f2520f3 into main Aug 24, 2026
9 checks passed
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.

CopyObjectResult omits checksum fields and minio-go drops them

1 participant