diff --git a/backend/posix/posix.go b/backend/posix/posix.go index 834b4561..3f1c6062 100644 --- a/backend/posix/posix.go +++ b/backend/posix/posix.go @@ -1166,8 +1166,18 @@ func (p *Posix) createObjVersion(bucket, key string, size int64, acc auth.Accoun } defer f.cleanup() + // Keeps original time + srcInfo, _ := sf.Stat() + beforeMTime := srcInfo.ModTime() + // Prioritize copy_file_range for internal file-to-file version copies. _, err = io.Copy(f.File(), sf) + + err = os.Chtimes(f.File().Name(), time.Now(), beforeMTime) + if err != nil { + return versionPath, err + } + if err != nil { return versionPath, err }