fix(worker): ensure temporary files are removed on error during image compression and conversion

This commit is contained in:
keven1024
2026-02-27 18:47:16 +08:00
parent 123178084a
commit ceb2d026d2

View File

@@ -6,6 +6,7 @@ import (
"errors" "errors"
"fmt" "fmt"
"mime" "mime"
"os"
"path/filepath" "path/filepath"
"pkg/models" "pkg/models"
"pkg/utils" "pkg/utils"
@@ -37,6 +38,7 @@ func CompressImage(ctx context.Context, task *asynq.Task) error {
} }
compressedFileInfo, err := services.GenStandardFile(compressedPath, originalFileInfo.MimeType) compressedFileInfo, err := services.GenStandardFile(compressedPath, originalFileInfo.MimeType)
if err != nil { if err != nil {
defer os.Remove(compressedPath)
return err return err
} }
@@ -80,12 +82,14 @@ func ConvertImage(ctx context.Context, task *asynq.Task) error {
} }
return err return err
} }
mimeType := mime.TypeByExtension(payload.TargetExt) mimeType := mime.TypeByExtension(fmt.Sprintf(".%s", payload.TargetExt))
if mimeType == "" { if mimeType == "" {
defer os.Remove(convertedPath)
return ErrUnknown return ErrUnknown
} }
convertedFileInfo, err := services.GenStandardFile(convertedPath, mimeType) convertedFileInfo, err := services.GenStandardFile(convertedPath, mimeType)
if err != nil { if err != nil {
defer os.Remove(convertedPath)
return err return err
} }