Feat: use database transactions to delete / update file size

This commit is contained in:
HFO4
2022-02-27 14:23:26 +08:00
parent 2811ee3285
commit 285e80ba76
6 changed files with 77 additions and 39 deletions

View File

@@ -133,19 +133,15 @@ func HookValidateCapacityWithoutIncrease(ctx context.Context, fs *FileSystem, fi
return nil
}
// HookChangeCapacity 根据原有文件和新文件的大小更新用户容量
func HookChangeCapacity(ctx context.Context, fs *FileSystem, newFile fsctx.FileHeader) error {
// HookValidateCapacityDiff 根据原有文件和新文件的大小验证用户容量
func HookValidateCapacityDiff(ctx context.Context, fs *FileSystem, newFile fsctx.FileHeader) error {
originFile := ctx.Value(fsctx.FileModelCtx).(model.File)
newFileSize := newFile.Info().Size
if newFileSize > originFile.Size {
if !fs.ValidateCapacity(ctx, newFileSize-originFile.Size) {
return ErrInsufficientCapacity
}
return nil
return HookValidateCapacityWithoutIncrease(ctx, fs, newFile)
}
fs.User.DeductionStorage(originFile.Size - newFileSize)
return nil
}