From 2f6e03fb60575661dcb9796aef4bf022321e65c7 Mon Sep 17 00:00:00 2001 From: Shubhendu Date: Fri, 7 Jun 2024 01:01:01 +0530 Subject: [PATCH] Calculate correct object size while replication (#19888) It was missing in case of `replicateObject` but was present for `replicateAll` already Signed-off-by: Shubhendu Ram Tripathi --- cmd/bucket-replication.go | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/cmd/bucket-replication.go b/cmd/bucket-replication.go index db214a0ef..7bd42c3a6 100644 --- a/cmd/bucket-replication.go +++ b/cmd/bucket-replication.go @@ -1227,17 +1227,23 @@ func (ri ReplicateObjectInfo) replicateObject(ctx context.Context, objectAPI Obj // make sure we have the latest metadata for metrics calculation rinfo.PrevReplicationStatus = objInfo.TargetReplicationStatus(tgt.ARN) - size, err := objInfo.GetActualSize() - if err != nil { - replLogIf(ctx, err) - sendEvent(eventArgs{ - EventName: event.ObjectReplicationNotTracked, - BucketName: bucket, - Object: objInfo, - UserAgent: "Internal: [Replication]", - Host: globalLocalNodeName, - }) - return + // Set the encrypted size for SSE-C objects + var size int64 + if crypto.SSEC.IsEncrypted(objInfo.UserDefined) { + size = objInfo.Size + } else { + size, err = objInfo.GetActualSize() + if err != nil { + replLogIf(ctx, err) + sendEvent(eventArgs{ + EventName: event.ObjectReplicationNotTracked, + BucketName: bucket, + Object: objInfo, + UserAgent: "Internal: [Replication]", + Host: globalLocalNodeName, + }) + return + } } if tgt.Bucket == "" {