From 8b6defa69c53c72619d17d2295e0386433b357a1 Mon Sep 17 00:00:00 2001 From: wood chen Date: Tue, 22 Oct 2024 23:27:07 +0800 Subject: [PATCH] refactor(router): add file size check before image processing --- handler/router.go | 21 +++++++++++++++++++-- helper/helper.go | 2 +- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/handler/router.go b/handler/router.go index 2c5df46..cf07931 100644 --- a/handler/router.go +++ b/handler/router.go @@ -95,11 +95,28 @@ func Convert(c *fiber.Ctx) error { } // 处理图片 - err := encoder.ProcessAndSaveImage(rawImageAbs, exhaustFilename, extraParams) + + // 检查文件大小 + isSmall, err := helper.IsFileSizeSmall(rawImageAbs, 100*1024) // 100KB if err != nil { - log.Errorf("处理图片失败: %v", err) + log.Errorf("检查文件大小时出错: %v", err) return c.SendStatus(fiber.StatusInternalServerError) } + if isSmall { + log.Infof("文件 %s 小于100KB,直接复制到 EXHAUST_PATH", rawImageAbs) + if err := helper.CopyFile(rawImageAbs, exhaustFilename); err != nil { + log.Errorf("复制小文件到 EXHAUST_PATH 失败: %v", err) + return c.SendStatus(fiber.StatusInternalServerError) + } + } else { + // 处理图片 + err := encoder.ProcessAndSaveImage(rawImageAbs, exhaustFilename, extraParams) + if err != nil { + log.Errorf("处理图片失败: %v", err) + return c.SendStatus(fiber.StatusInternalServerError) + } + } + return c.SendFile(exhaustFilename) } diff --git a/helper/helper.go b/helper/helper.go index 99c4d69..de1ca6a 100644 --- a/helper/helper.go +++ b/helper/helper.go @@ -242,7 +242,7 @@ func IsAllowedImageFile(filename string) bool { return slices.Contains(allowedTypes, ext) } -// 小于100KB文件直接复制到EXHAUST_PATH +// 直接复制到EXHAUST_PATH func CopyFile(src, dst string) error { sourceFileStat, err := os.Stat(src) if err != nil {