From 142c5950a0e12b611c748691aa847dcdc04d4e52 Mon Sep 17 00:00:00 2001 From: David Christofas Date: Wed, 18 Mar 2020 11:23:49 +0100 Subject: [PATCH] make filetype dynamic based on file extension --- pkg/dav/thumbnails/thumbnail.go | 4 ++-- pkg/service/v0/service.go | 10 +++++++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/pkg/dav/thumbnails/thumbnail.go b/pkg/dav/thumbnails/thumbnail.go index b171e52bca..5a0cf39e6b 100644 --- a/pkg/dav/thumbnails/thumbnail.go +++ b/pkg/dav/thumbnails/thumbnail.go @@ -42,11 +42,11 @@ func NewRequest(r *http.Request) (Request, error) { return Request{}, fmt.Errorf("c (etag) is missing in query") } - authorization := r.Header.Get("Authorizaiton") + authorization := r.Header.Get("Authorization") tr := Request{ Filepath: path, - Filetype: filepath.Ext(path), + Filetype: strings.Replace(filepath.Ext(path), ".", "", 1), Etag: etag, Width: width, Height: height, diff --git a/pkg/service/v0/service.go b/pkg/service/v0/service.go index bdd2b15c9b..a139c63d3a 100644 --- a/pkg/service/v0/service.go +++ b/pkg/service/v0/service.go @@ -59,7 +59,7 @@ func (g Webdav) Thumbnail(w http.ResponseWriter, r *http.Request) { c := thumbnails.NewThumbnailService("com.owncloud.api.thumbnails", client.DefaultClient) rsp, err := c.GetThumbnail(r.Context(), &thumbnails.GetRequest{ Filepath: strings.TrimLeft(tr.Filepath, "/"), - Filetype: thumbnails.GetRequest_JPG, + Filetype: extensionToFiletype(tr.Filetype), Etag: tr.Etag, Width: int32(tr.Width), Height: int32(tr.Height), @@ -71,8 +71,12 @@ func (g Webdav) Thumbnail(w http.ResponseWriter, r *http.Request) { return } - w.Header().Set("Content-Type", "image/jpeg") + w.Header().Set("Content-Type", rsp.GetMimetype()) w.WriteHeader(http.StatusOK) - w.Write(rsp.Thumbnail) } + +func extensionToFiletype(ext string) thumbnails.GetRequest_FileType { + val := thumbnails.GetRequest_FileType_value[strings.ToUpper(ext)] + return thumbnails.GetRequest_FileType(val) +}