From b6c32fc05a1939419b983970afcea3bb8b62825d Mon Sep 17 00:00:00 2001 From: Klaus Post Date: Wed, 26 Oct 2022 17:37:42 +0200 Subject: [PATCH] Transfer returned checksum values (#1719) Checksums were missing from multipart uploads. --- api-datatypes.go | 2 ++ api-put-object-multipart.go | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/api-datatypes.go b/api-datatypes.go index d6795a024..1f4793877 100644 --- a/api-datatypes.go +++ b/api-datatypes.go @@ -87,6 +87,8 @@ type UploadInfo struct { ExpirationRuleID string // Verified checksum values, if any. + // Values are base64 (standard) encoded. + // For multipart objects this is a checksum of the checksum of each part. ChecksumCRC32 string ChecksumCRC32C string ChecksumSHA1 string diff --git a/api-put-object-multipart.go b/api-put-object-multipart.go index e4c958882..3c9a13ff2 100644 --- a/api-put-object-multipart.go +++ b/api-put-object-multipart.go @@ -448,5 +448,10 @@ func (c *Client) completeMultipartUpload(ctx context.Context, bucketName, object Location: completeMultipartUploadResult.Location, Expiration: expTime, ExpirationRuleID: ruleID, + + ChecksumSHA256: completeMultipartUploadResult.ChecksumSHA256, + ChecksumSHA1: completeMultipartUploadResult.ChecksumSHA1, + ChecksumCRC32: completeMultipartUploadResult.ChecksumCRC32, + ChecksumCRC32C: completeMultipartUploadResult.ChecksumCRC32C, }, nil }