From 4b4773e3360f2a714d9a43a25de31c877b0366d4 Mon Sep 17 00:00:00 2001 From: keven1024 Date: Sat, 24 May 2025 21:39:04 +0800 Subject: [PATCH] refactor(backend): move GetUploadDirPath function to utils for better modularity --- backend/internal/controllers/download.go | 3 +-- backend/internal/controllers/file.go | 2 +- backend/internal/models/file.go | 2 +- backend/internal/services/file.go | 15 +-------------- backend/internal/utils/file.go | 15 +++++++++++++++ 5 files changed, 19 insertions(+), 18 deletions(-) diff --git a/backend/internal/controllers/download.go b/backend/internal/controllers/download.go index 014b9c6..4e76d8e 100644 --- a/backend/internal/controllers/download.go +++ b/backend/internal/controllers/download.go @@ -2,7 +2,6 @@ package controllers import ( "backend/internal/models" - "backend/internal/services" "backend/internal/utils" "backend/middleware" "errors" @@ -38,7 +37,7 @@ func DownloadShare(c echo.Context) error { if shareInfo.Type == models.ShareTypeFile { fileInfo, _ := models.GetRedisFileInfo(shareInfo.Data) - uploadPath, err := services.GetUploadDirPath() + uploadPath, err := utils.GetUploadDirPath() if err != nil { return err } diff --git a/backend/internal/controllers/file.go b/backend/internal/controllers/file.go index 0fcfcb4..75d5a39 100644 --- a/backend/internal/controllers/file.go +++ b/backend/internal/controllers/file.go @@ -150,7 +150,7 @@ func FinishUploadTask(c echo.Context) error { } // 合并文件切片 - uploadPath, _ := services.GetUploadDirPath() + uploadPath, _ := utils.GetUploadDirPath() slicesPath := filepath.Join(uploadPath, fmt.Sprintf("%s_%s", r.FileId, "tmp")) // 最终合并后的文件路径 diff --git a/backend/internal/models/file.go b/backend/internal/models/file.go index b8a816a..98e8050 100644 --- a/backend/internal/models/file.go +++ b/backend/internal/models/file.go @@ -26,7 +26,7 @@ type RedisFileInfo struct { FileInfo FileType FileType `json:"type"` CreatedAt int64 `json:"created_at"` - Expire int64 `json:"expire"` + Expire int64 `json:"expire"` // 只有上传文件(init)的时候有这个字段 } func GetRedisFileInfo(fileId string) (*RedisFileInfo, error) { diff --git a/backend/internal/services/file.go b/backend/internal/services/file.go index 1bf24ea..e142d5c 100644 --- a/backend/internal/services/file.go +++ b/backend/internal/services/file.go @@ -9,21 +9,8 @@ import ( "strconv" ) -func GetUploadDirPath() (string, error) { - basepath, err := os.Getwd() - if err != nil { - return "", err - } - finalPath := filepath.Join(basepath, "uploads") - uploadPath := utils.GetEnvWithDefault("UPLOAD_PATH", finalPath) - if err := os.MkdirAll(uploadPath, 0755); err != nil { - return "", err - } - return uploadPath, nil -} - func CreateFileSlice(fileSlice io.Reader, fileId string, fileIndex int64) error { - uploadPath, err := GetUploadDirPath() + uploadPath, err := utils.GetUploadDirPath() if err != nil { return err } diff --git a/backend/internal/utils/file.go b/backend/internal/utils/file.go index a231c25..eba1f3d 100644 --- a/backend/internal/utils/file.go +++ b/backend/internal/utils/file.go @@ -5,6 +5,8 @@ import ( "crypto/md5" "fmt" "io" + "os" + "path/filepath" ) func GetFileId(fileHash string, fileSize int64) string { @@ -30,3 +32,16 @@ func GetFileMd5(file io.Reader) (string, error) { return fmt.Sprintf("%x", hash.Sum(nil)), nil } + +func GetUploadDirPath() (string, error) { + basepath, err := os.Getwd() + if err != nil { + return "", err + } + finalPath := filepath.Join(basepath, "uploads") + uploadPath := GetEnvWithDefault("UPLOAD_PATH", finalPath) + if err := os.MkdirAll(uploadPath, 0755); err != nil { + return "", err + } + return uploadPath, nil +}