0
Fork 0
mirror of https://github.com/willnorris/imageproxy.git synced 2025-04-15 03:03:10 -05:00

DEVOPS-1073: Add recover with logging.

This commit is contained in:
Ken Kelly 2024-04-17 11:35:22 -04:00
parent c3781949e4
commit acd0c8dafa
2 changed files with 14 additions and 8 deletions

View file

@ -25,7 +25,6 @@ import (
"errors"
"fmt"
"io"
"io/ioutil"
"log"
"mime"
"net"
@ -159,7 +158,17 @@ func (p *Proxy) ServeHTTP(w http.ResponseWriter, r *http.Request) {
// serveImage handles incoming requests for proxied images.
func (p *Proxy) serveImage(w http.ResponseWriter, r *http.Request) {
req, err := NewRequest(r, p.DefaultBaseURL)
var req *Request
var err error
var resp *http.Response
defer func() {
if r := recover(); r != nil {
fmt.Println("recovered in serveImage for url: ", req.String(), resp.Status, resp.ContentLength, r)
}
}()
req, err = NewRequest(r, p.DefaultBaseURL)
if err != nil {
msg := fmt.Sprintf("invalid request URL: %v", err)
p.log(msg)
@ -189,7 +198,7 @@ func (p *Proxy) serveImage(w http.ResponseWriter, r *http.Request) {
copyHeader(actualReq.Header, r.Header, "referer")
}
resp, err := p.Client.Do(actualReq)
resp, err = p.Client.Do(actualReq)
if err != nil {
msg := fmt.Sprintf("error fetching remote image: %v", err)
p.log(msg)
@ -230,7 +239,7 @@ func (p *Proxy) serveImage(w http.ResponseWriter, r *http.Request) {
if contentType == "" || contentType == "application/octet-stream" || contentType == "binary/octet-stream" {
// try to detect content type
b := bufio.NewReader(resp.Body)
resp.Body = ioutil.NopCloser(b)
resp.Body = io.NopCloser(b)
contentType = peekContentType(b)
}
@ -501,7 +510,7 @@ func (t *TransformingTransport) RoundTrip(req *http.Request) (*http.Response, er
return &http.Response{StatusCode: http.StatusNotModified}, nil
}
b, err := ioutil.ReadAll(resp.Body)
b, err := io.ReadAll(resp.Body)
if err != nil {
return nil, err
}

View file

@ -403,9 +403,6 @@ func addSizeIndicator(m image.Image, size string) image.Image {
draw.Draw(output, b, m, image.ZP, draw.Src)
draw.Draw(output, sizeImage.Bounds().Add(offset), sizeImage, image.ZP, draw.Over)
if err != nil {
log.Fatalf("failed to decode: %s", err)
}
return output
}