From 736414fa106f7d228620dd0479d787784032be8a Mon Sep 17 00:00:00 2001 From: Aaron Liu Date: Wed, 14 Jan 2026 10:37:05 +0800 Subject: [PATCH] fix(dbfs): setting version does not change file size --- inventory/file.go | 6 +++--- pkg/filemanager/fs/dbfs/manage.go | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/inventory/file.go b/inventory/file.go index 45f8cade..4d5734d9 100644 --- a/inventory/file.go +++ b/inventory/file.go @@ -198,7 +198,7 @@ type FileClient interface { // SoftDelete soft-deletes a file, also renaming it to a random name SoftDelete(ctx context.Context, file *ent.File) error // SetPrimaryEntity sets primary entity of a file - SetPrimaryEntity(ctx context.Context, file *ent.File, entityID int) error + SetPrimaryEntity(ctx context.Context, file *ent.File, entity *ent.Entity) error // UnlinkEntity unlinks an entity from a file UnlinkEntity(ctx context.Context, entity *ent.Entity, file *ent.File, owner *ent.User) (StorageDiff, error) // CreateDirectLink creates a direct link for a file @@ -743,8 +743,8 @@ func (f *fileClient) UpgradePlaceholder(ctx context.Context, file *ent.File, mod return nil } -func (f *fileClient) SetPrimaryEntity(ctx context.Context, file *ent.File, entityID int) error { - return f.client.File.UpdateOne(file).SetPrimaryEntity(entityID).Exec(ctx) +func (f *fileClient) SetPrimaryEntity(ctx context.Context, file *ent.File, entity *ent.Entity) error { + return f.client.File.UpdateOne(file).SetPrimaryEntity(entity.ID).SetSize(entity.Size).Exec(ctx) } func (f *fileClient) CreateFile(ctx context.Context, root *ent.File, args *CreateFileParameters) (*ent.File, *ent.Entity, StorageDiff, error) { diff --git a/pkg/filemanager/fs/dbfs/manage.go b/pkg/filemanager/fs/dbfs/manage.go index 3ba84eb8..240b76c8 100644 --- a/pkg/filemanager/fs/dbfs/manage.go +++ b/pkg/filemanager/fs/dbfs/manage.go @@ -752,7 +752,7 @@ func (f *DBFS) setCurrentVersion(ctx context.Context, target *File, versionId in return serializer.NewError(serializer.CodeDBError, "Failed to start transaction", err) } - if err := fc.SetPrimaryEntity(ctx, target.Model, targetVersion.ID()); err != nil { + if err := fc.SetPrimaryEntity(ctx, target.Model, targetVersion.Model()); err != nil { _ = inventory.Rollback(tx) return serializer.NewError(serializer.CodeDBError, "Failed to set primary entity", err) }