diff --git a/changelog/unreleased/fix-use-existing-thumbnails.md b/changelog/unreleased/fix-use-existing-thumbnails.md new file mode 100644 index 000000000..9f7bfb70d --- /dev/null +++ b/changelog/unreleased/fix-use-existing-thumbnails.md @@ -0,0 +1,6 @@ +Bugfix: Avoid re-creating thumbnails + +We fixed a bug that caused the system to re-create thumbnails for images, even +if a thumbnail already existed in the cache. + +https://github.com/owncloud/ocis/pull/10251 diff --git a/services/thumbnails/pkg/service/grpc/v0/service.go b/services/thumbnails/pkg/service/grpc/v0/service.go index 2279f30c5..e3be60633 100644 --- a/services/thumbnails/pkg/service/grpc/v0/service.go +++ b/services/thumbnails/pkg/service/grpc/v0/service.go @@ -145,8 +145,12 @@ func (g Thumbnail) handleCS3Source(ctx context.Context, req *thumbnailssvc.GetTh } key, tr, err := g.checkThumbnail(req, sRes) - if err != nil { + switch { + case err != nil: return "", err + case key != "": + // we have matching thumbnail already, use that + return key, nil } ctx = imgsource.ContextSetAuthorization(ctx, src.GetAuthorization()) @@ -220,9 +224,14 @@ func (g Thumbnail) handleWebdavSource(ctx context.Context, req *thumbnailssvc.Ge } key, tr, err := g.checkThumbnail(req, sRes) - if err != nil { + switch { + case err != nil: return "", err + case key != "": + // we have matching thumbnail already, use that + return key, nil } + if src.GetWebdavAuthorization() != "" { ctx = imgsource.ContextSetAuthorization(ctx, src.GetWebdavAuthorization()) }