diff --git a/cmd/object-handlers.go b/cmd/object-handlers.go index 4ea15546b..5d454c67f 100644 --- a/cmd/object-handlers.go +++ b/cmd/object-handlers.go @@ -1580,6 +1580,7 @@ func (api objectAPIHandlers) CopyObjectHandler(w http.ResponseWriter, r *http.Re } } + origETag := objInfo.ETag objInfo.ETag = getDecryptedETag(r.Header, objInfo, false) response := generateCopyObjectResponse(objInfo.ETag, objInfo.ModTime) encodedSuccessResponse := encodeResponse(response) @@ -1612,6 +1613,7 @@ func (api objectAPIHandlers) CopyObjectHandler(w http.ResponseWriter, r *http.Re if !remoteCallRequired && !globalTierConfigMgr.Empty() { // Schedule object for immediate transition if eligible. + objInfo.ETag = origETag enqueueTransitionImmediate(objInfo) // Remove the transitioned object whose object version is being overwritten. logger.LogIf(ctx, os.Sweep()) @@ -1942,6 +1944,7 @@ func (api objectAPIHandlers) PutObjectHandler(w http.ResponseWriter, r *http.Req } } + origETag := objInfo.ETag if kind, encrypted := crypto.IsEncrypted(objInfo.UserDefined); encrypted { switch kind { case crypto.S3: @@ -1988,6 +1991,7 @@ func (api objectAPIHandlers) PutObjectHandler(w http.ResponseWriter, r *http.Req // Remove the transitioned object whose object version is being overwritten. if !globalTierConfigMgr.Empty() { // Schedule object for immediate transition if eligible. + objInfo.ETag = origETag enqueueTransitionImmediate(objInfo) logger.LogIf(ctx, os.Sweep()) }