Fix: file size is ready dirty when clean upload sessions

After listing to be deleted files, before delete is committed to database, file size might be changed by ongoing upload, causing inconsistent user storage.
pull/1217/head
HFO4 2 years ago
parent ec776ac837
commit ace398d87b

@ -221,14 +221,17 @@ func DeleteFiles(files []*File, uid uint) error {
for _, file := range files {
if file.UserID != uid {
tx.Rollback()
return errors.New("User id not consistent")
return errors.New("user id not consistent")
}
result := tx.Unscoped().Delete(file)
if result.RowsAffected != 0 {
size += file.Size
result := tx.Unscoped().Where("size = ?", file.Size).Delete(file)
if result.RowsAffected == 0 {
tx.Rollback()
return errors.New("file size is dirty")
}
size += file.Size
if result.Error != nil {
tx.Rollback()
return result.Error

Loading…
Cancel
Save