diff --git a/cmd/erasure-object.go b/cmd/erasure-object.go index f3f97a7b1..45d2822b9 100644 --- a/cmd/erasure-object.go +++ b/cmd/erasure-object.go @@ -132,15 +132,18 @@ func (er erasureObjects) CopyObject(ctx context.Context, srcBucket, srcObject, d versionID = mustGetUUID() fi.IsLatest = true // we are creating a new version so this is latest. } - modTime = UTCNow() } + modTime = UTCNow() // We only preserve modTime if dstOpts.MTime is true. + // in all other cases mtime is latest. + fi.VersionID = versionID // set any new versionID we might have created fi.ModTime = modTime // set modTime for the new versionID if !dstOpts.MTime.IsZero() { modTime = dstOpts.MTime fi.ModTime = dstOpts.MTime } + fi.Metadata = srcInfo.UserDefined srcInfo.UserDefined["etag"] = srcInfo.ETag