Просмотр исходного кода

Don't fail if can't load thumbnail

DarthSim 2 лет назад
Родитель
Сommit
8f91fa5bd4
2 измененных файлов с 9 добавлено и 2 удалено
  1. 5 1
      processing/processing.go
  2. 4 1
      processing/scale_on_load.go

+ 5 - 1
processing/processing.go

@@ -208,7 +208,11 @@ func ProcessImage(ctx context.Context, imgdata *imagedata.ImageData, po *options
 
 	if po.EnforceThumbnail && imgdata.Type.SupportsThumbnail() {
 		if err := img.LoadThumbnail(imgdata); err != nil {
-			return nil, err
+			log.Debugf("Can't load thumbnail: %s", err)
+			// Failed to load thumbnail, rollback to the full image
+			if err := img.Load(imgdata, 1, 1.0, pages); err != nil {
+				return nil, err
+			}
 		}
 	} else {
 		if err := img.Load(imgdata, 1, 1.0, pages); err != nil {

+ 4 - 1
processing/scale_on_load.go

@@ -3,6 +3,8 @@ package processing
 import (
 	"math"
 
+	log "github.com/sirupsen/logrus"
+
 	"github.com/imgproxy/imgproxy/v3/config"
 	"github.com/imgproxy/imgproxy/v3/imagedata"
 	"github.com/imgproxy/imgproxy/v3/imagetype"
@@ -59,7 +61,8 @@ func scaleOnLoad(pctx *pipelineContext, img *vips.Image, po *options.ProcessingO
 		defer thumbnail.Clear()
 
 		if err := thumbnail.LoadThumbnail(imgdata); err != nil {
-			return err
+			log.Debugf("Can't load thumbnail: %s", err)
+			return nil
 		}
 
 		angle, flip := 0, false