Skip to content

Commit 60e50ac

Browse files
authored
Merge pull request #39 from smartnews/default-accept-header
Default accept header
2 parents 7f72acd + cc51d60 commit 60e50ac

File tree

3 files changed

+12
-6
lines changed

3 files changed

+12
-6
lines changed

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM ubuntu:18.04
1+
FROM ubuntu:20.04
22

33
ENV IMAGEMAGICK_VERSION 6.9.11-43
44
ENV LIBHEIF_VERSION 1.6.2

files/thumberd.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
[http]
77
avoid_chunk = false
8+
accept = "image/webp,*/*"
89
user_agent = "yoya-thumber"
910

1011
[domain]

thumberd/thumberd.go

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ type tomlConfig struct {
6565
}
6666
Http struct {
6767
AvoidChunk bool
68+
Accept string
6869
UserAgent string
6970
}
7071
Domain map[string]map[string]interface{}
@@ -100,7 +101,7 @@ func loadToml() (*tomlConfig, error) {
100101
}
101102

102103
func errorServer(w http.ResponseWriter, r *http.Request) {
103-
glog.Error("404 Not Found")
104+
glog.Error("404 Not Found:" + r.URL.String())
104105
http.Error(w, "404 Not Found", http.StatusNotFound)
105106
}
106107

@@ -152,7 +153,7 @@ func urlCanonical(url string, referer string) string {
152153
return proto + "://" + strings.TrimLeft(words[1], "/")
153154
}
154155

155-
func myClientImageGet(imageUrl string, referer string, userAgent string) (*http.Response, error, int) {
156+
func myClientImageGet(imageUrl string, referer string, userAgent string, accept string) (*http.Response, error, int) {
156157
imageUrl = urlCanonical(imageUrl, referer)
157158
var srcReader *http.Response
158159
var err error
@@ -187,10 +188,14 @@ func myClientImageGet(imageUrl string, referer string, userAgent string) (*http.
187188
req.Header.Add("User-Agent", userAgent)
188189
}
189190

191+
if accept != "" {
192+
req.Header.Add("Accept", accept)
193+
}
194+
190195
client := getHttpClient(u.Host)
191196
srcReader, err = client.Do(req)
192197
if err != nil {
193-
glog.Warning("imageUrl not find " + imageUrl)
198+
glog.Warning("error requesting imageUrl:" + imageUrl)
194199
return nil, err, http.StatusBadRequest
195200
}
196201

@@ -404,7 +409,7 @@ func thumbServer(w http.ResponseWriter, r *http.Request, sem chan int) {
404409
params.ImageUrl, _ = url.QueryUnescape(val)
405410
case "io":
406411
val, _ := url.QueryUnescape(tup[1])
407-
OverlapsrcReader, err, statusCode := myClientImageGet(val, r.Referer(), c.Http.UserAgent)
412+
OverlapsrcReader, err, statusCode := myClientImageGet(val, r.Referer(), c.Http.UserAgent, c.Http.Accept)
408413
if err != nil {
409414
glog.Error("Upstream Overlap Image failed : "+err.Error(), statusCode)
410415
http.Error(w, "Upstream Overlap Image failed : "+err.Error(), statusCode)
@@ -466,7 +471,7 @@ func thumbServer(w http.ResponseWriter, r *http.Request, sem chan int) {
466471
return
467472
}
468473

469-
srcReader, err, statusCode := myClientImageGet(params.ImageUrl, r.Referer(), c.Http.UserAgent)
474+
srcReader, err, statusCode := myClientImageGet(params.ImageUrl, r.Referer(), c.Http.UserAgent, c.Http.Accept)
470475
if err != nil {
471476
message := "Upstream failed\tpath:" + path + "\treferer:" + r.Referer() + "\terror:" + err.Error()
472477
glog.Error(message, statusCode)

0 commit comments

Comments
 (0)