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 {