putio: fix incorrect modtime after setting a file's modtime

SetModTime kept the caller's full precision modtime in memory while
the server stores second precision, so until the object was re-read
the modtime did not match what a fresh listing would report. This
broke wrappers which compare exact modtimes, such as the hasher
backend's fingerprint and the VFS cache. Truncate the modtime to
second precision to match what the server stores.
This commit is contained in:
Nick Craig-Wood
2026-07-14 14:13:49 +01:00
parent fc87735f80
commit dee6e23d34
+5 -2
View File
@@ -202,9 +202,12 @@ func (o *Object) SetModTime(ctx context.Context, modTime time.Time) (err error)
if err != nil {
return err
}
o.modtime = modTime
// The server stores modtimes with second precision so truncate
// here too to keep the in-memory modtime identical to the one a
// fresh listing returns.
o.modtime = modTime.Truncate(time.Second)
if o.file != nil {
o.file.UpdatedAt.Time = modTime
o.file.UpdatedAt.Time = o.modtime
}
return nil
}