protondrive: fix incorrect modtime after uploading a file

Update (which Put also uses) 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 72907a7a90
commit 1404a9f9d1
+4 -1
View File
@@ -1130,7 +1130,10 @@ func (o *Object) Update(ctx context.Context, in io.Reader, src fs.ObjectInfo, op
o.id = linkID
o.originalSize = &fileSystemAttrs.Size
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)
o.blockSizes = fileSystemAttrs.BlockSizes
o.digests = &sha1Hash