From b61027defd16d9af0612f1347239b5bd62fa71f7 Mon Sep 17 00:00:00 2001 From: nyne Date: Mon, 26 May 2025 20:57:10 +0800 Subject: [PATCH] Reorder file creation logic to ensure size limit check occurs before database insertion --- server/service/file.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/server/service/file.go b/server/service/file.go index 0a1cc89..a0d1029 100644 --- a/server/service/file.go +++ b/server/service/file.go @@ -505,18 +505,18 @@ func CreateServerDownloadTask(uid uint, url, filename, description string, resou return nil, model.NewRequestError("failed to test file URL: " + err.Error()) } - file, err := dao.CreateFile(filename, description, resourceID, &storageID, storageKeyUnavailable, "", 0, uid) - if err != nil { - log.Error("failed to create file in db: ", err) - return nil, model.NewInternalServerError("failed to create file in db") - } - if contentLength+getUploadingSize() > config.MaxUploadingSize() { log.Info("A new downloading file is rejected due to max uploading size limit") _ = dao.DeleteFile(file.UUID) return nil, model.NewRequestError("server is busy, please try again later") } + file, err := dao.CreateFile(filename, description, resourceID, &storageID, storageKeyUnavailable, "", 0, uid) + if err != nil { + log.Error("failed to create file in db: ", err) + return nil, model.NewInternalServerError("failed to create file in db") + } + updateUploadingSize(contentLength) go func() {