mirror of
https://github.com/woodchen-ink/webp_server_go.git
synced 2025-07-19 06:02:01 +08:00
refactor(router): add file size check before image processing
This commit is contained in:
parent
fdea015805
commit
8b6defa69c
@ -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)
|
||||||
}
|
}
|
||||||
|
@ -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 {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user