refactor(router): add file size check before image processing

This commit is contained in:
wood chen 2024-10-22 23:27:07 +08:00
parent fdea015805
commit 8b6defa69c
2 changed files with 20 additions and 3 deletions

View File

@ -94,12 +94,29 @@ func Convert(c *fiber.Ctx) error {
return c.SendFile(rawImageAbs)
}
// 处理图片
// 检查文件大小
isSmall, err := helper.IsFileSizeSmall(rawImageAbs, 100*1024) // 100KB
if err != nil {
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)
}

View File

@ -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 {