From ceb2d026d20b08bfdf3d28e2c2fa601108a759f3 Mon Sep 17 00:00:00 2001 From: keven1024 Date: Fri, 27 Feb 2026 18:47:16 +0800 Subject: [PATCH] fix(worker): ensure temporary files are removed on error during image compression and conversion --- worker/internal/tasks/image.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/worker/internal/tasks/image.go b/worker/internal/tasks/image.go index 75205ed..c793519 100644 --- a/worker/internal/tasks/image.go +++ b/worker/internal/tasks/image.go @@ -6,6 +6,7 @@ import ( "errors" "fmt" "mime" + "os" "path/filepath" "pkg/models" "pkg/utils" @@ -37,6 +38,7 @@ func CompressImage(ctx context.Context, task *asynq.Task) error { } compressedFileInfo, err := services.GenStandardFile(compressedPath, originalFileInfo.MimeType) if err != nil { + defer os.Remove(compressedPath) return err } @@ -80,12 +82,14 @@ func ConvertImage(ctx context.Context, task *asynq.Task) error { } return err } - mimeType := mime.TypeByExtension(payload.TargetExt) + mimeType := mime.TypeByExtension(fmt.Sprintf(".%s", payload.TargetExt)) if mimeType == "" { + defer os.Remove(convertedPath) return ErrUnknown } convertedFileInfo, err := services.GenStandardFile(convertedPath, mimeType) if err != nil { + defer os.Remove(convertedPath) return err }