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

@ -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 { if err != nil {
log.Errorf("处理图片失败: %v", err) log.Errorf("检查文件大小时出错: %v", err)
return c.SendStatus(fiber.StatusInternalServerError) 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) return c.SendFile(exhaustFilename)
} }

View File

@ -242,7 +242,7 @@ func IsAllowedImageFile(filename string) bool {
return slices.Contains(allowedTypes, ext) return slices.Contains(allowedTypes, ext)
} }
// 小于100KB文件直接复制到EXHAUST_PATH // 直接复制到EXHAUST_PATH
func CopyFile(src, dst string) error { func CopyFile(src, dst string) error {
sourceFileStat, err := os.Stat(src) sourceFileStat, err := os.Stat(src)
if err != nil { if err != nil {