diff --git a/src/internal/data/data_collection.go b/src/internal/data/data_collection.go index 0e3d492e0..791f0cdab 100644 --- a/src/internal/data/data_collection.go +++ b/src/internal/data/data_collection.go @@ -87,6 +87,10 @@ type StreamModTime interface { ModTime() time.Time } +type Versioner interface { + Version() uint32 +} + // ------------------------------------------------------------------------------------------------ // functionality // ------------------------------------------------------------------------------------------------ diff --git a/src/internal/kopia/upload.go b/src/internal/kopia/upload.go index 8ddb46978..d35db8bcf 100644 --- a/src/internal/kopia/upload.go +++ b/src/internal/kopia/upload.go @@ -339,9 +339,15 @@ func collectionEntries( modTime = smt.ModTime() } + o := fs.OwnerInfo{} + if sv, ok := e.(data.Versioner); ok { + o.UserID = sv.Version() + } + entry := virtualfs.StreamingFileWithModTimeFromReader( encodedName, modTime, + o, newBackupStreamReader(serializationVersion, e.ToReader()), ) if err := cb(ctx, entry); err != nil {