mirror of
https://github.com/willnorris/imageproxy.git
synced 2026-06-03 08:15:12 +02:00
fix go lint warnings
- handle errors where possible - explicitly ignore errors where it makes sense to - fix deprecations and unused var
This commit is contained in:
parent
5600290c82
commit
fc79b851b2
7 changed files with 31 additions and 19 deletions
|
|
@ -54,7 +54,9 @@ func sign(key string, s string, urlOnly bool) ([]byte, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
mac := hmac.New(sha256.New, []byte(k))
|
mac := hmac.New(sha256.New, []byte(k))
|
||||||
mac.Write([]byte(u.String()))
|
if _, err := mac.Write([]byte(u.String())); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
return mac.Sum(nil), nil
|
return mac.Sum(nil), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,7 @@ var signatureKeys signatureKeyList
|
||||||
var scaleUp = flag.Bool("scaleUp", false, "allow images to scale beyond their original dimensions")
|
var scaleUp = flag.Bool("scaleUp", false, "allow images to scale beyond their original dimensions")
|
||||||
var timeout = flag.Duration("timeout", 0, "time limit for requests served by this proxy")
|
var timeout = flag.Duration("timeout", 0, "time limit for requests served by this proxy")
|
||||||
var verbose = flag.Bool("verbose", false, "print verbose logging messages")
|
var verbose = flag.Bool("verbose", false, "print verbose logging messages")
|
||||||
var version = flag.Bool("version", false, "Deprecated: this flag does nothing")
|
var _ = flag.Bool("version", false, "Deprecated: this flag does nothing")
|
||||||
var contentTypes = flag.String("contentTypes", "image/*", "comma separated list of allowed content types")
|
var contentTypes = flag.String("contentTypes", "image/*", "comma separated list of allowed content types")
|
||||||
var userAgent = flag.String("userAgent", "willnorris/imageproxy", "specify the user-agent used by imageproxy when fetching images from origin website")
|
var userAgent = flag.String("userAgent", "willnorris/imageproxy", "specify the user-agent used by imageproxy when fetching images from origin website")
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -234,7 +234,9 @@ func (p *Proxy) serveImage(w http.ResponseWriter, r *http.Request) {
|
||||||
w.Header().Set("Access-Control-Allow-Origin", "*")
|
w.Header().Set("Access-Control-Allow-Origin", "*")
|
||||||
|
|
||||||
w.WriteHeader(resp.StatusCode)
|
w.WriteHeader(resp.StatusCode)
|
||||||
io.Copy(w, resp.Body)
|
if _, err := io.Copy(w, resp.Body); err != nil {
|
||||||
|
p.logf("error copying response: %v", err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// peekContentType peeks at the first 512 bytes of p, and attempts to detect
|
// peekContentType peeks at the first 512 bytes of p, and attempts to detect
|
||||||
|
|
@ -365,7 +367,7 @@ func validSignature(key []byte, r *Request) bool {
|
||||||
|
|
||||||
// check signature with URL only
|
// check signature with URL only
|
||||||
mac := hmac.New(sha256.New, key)
|
mac := hmac.New(sha256.New, key)
|
||||||
mac.Write([]byte(r.URL.String()))
|
_, _ = mac.Write([]byte(r.URL.String()))
|
||||||
want := mac.Sum(nil)
|
want := mac.Sum(nil)
|
||||||
if hmac.Equal(got, want) {
|
if hmac.Equal(got, want) {
|
||||||
return true
|
return true
|
||||||
|
|
@ -377,7 +379,7 @@ func validSignature(key []byte, r *Request) bool {
|
||||||
u.Fragment = opt.String()
|
u.Fragment = opt.String()
|
||||||
|
|
||||||
mac = hmac.New(sha256.New, key)
|
mac = hmac.New(sha256.New, key)
|
||||||
mac.Write([]byte(u.String()))
|
_, _ = mac.Write([]byte(u.String()))
|
||||||
want = mac.Sum(nil)
|
want = mac.Sum(nil)
|
||||||
return hmac.Equal(got, want)
|
return hmac.Equal(got, want)
|
||||||
}
|
}
|
||||||
|
|
@ -482,11 +484,13 @@ func (t *TransformingTransport) RoundTrip(req *http.Request) (*http.Response, er
|
||||||
// replay response with transformed image and updated content length
|
// replay response with transformed image and updated content length
|
||||||
buf := new(bytes.Buffer)
|
buf := new(bytes.Buffer)
|
||||||
fmt.Fprintf(buf, "%s %s\n", resp.Proto, resp.Status)
|
fmt.Fprintf(buf, "%s %s\n", resp.Proto, resp.Status)
|
||||||
resp.Header.WriteSubset(buf, map[string]bool{
|
if err := resp.Header.WriteSubset(buf, map[string]bool{
|
||||||
"Content-Length": true,
|
"Content-Length": true,
|
||||||
// exclude Content-Type header if the format may have changed during transformation
|
// exclude Content-Type header if the format may have changed during transformation
|
||||||
"Content-Type": opt.Format != "" || resp.Header.Get("Content-Type") == "image/webp" || resp.Header.Get("Content-Type") == "image/tiff",
|
"Content-Type": opt.Format != "" || resp.Header.Get("Content-Type") == "image/webp" || resp.Header.Get("Content-Type") == "image/tiff",
|
||||||
})
|
}); err != nil {
|
||||||
|
t.log("error copying headers: %v", err)
|
||||||
|
}
|
||||||
fmt.Fprintf(buf, "Content-Length: %d\n\n", len(img))
|
fmt.Fprintf(buf, "Content-Length: %d\n\n", len(img))
|
||||||
buf.Write(img)
|
buf.Write(img)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -375,7 +375,7 @@ func (t testTransport) RoundTrip(req *http.Request) (*http.Response, error) {
|
||||||
case "/png":
|
case "/png":
|
||||||
m := image.NewNRGBA(image.Rect(0, 0, 1, 1))
|
m := image.NewNRGBA(image.Rect(0, 0, 1, 1))
|
||||||
img := new(bytes.Buffer)
|
img := new(bytes.Buffer)
|
||||||
png.Encode(img, m)
|
_ = png.Encode(img, m)
|
||||||
|
|
||||||
raw = fmt.Sprintf("HTTP/1.1 200 OK\nContent-Length: %d\nContent-Type: image/png\n\n%s", len(img.Bytes()), img.Bytes())
|
raw = fmt.Sprintf("HTTP/1.1 200 OK\nContent-Length: %d\nContent-Type: image/png\n\n%s", len(img.Bytes()), img.Bytes())
|
||||||
default:
|
default:
|
||||||
|
|
|
||||||
|
|
@ -63,7 +63,7 @@ func (c *cache) object(key string) *storage.ObjectHandle {
|
||||||
|
|
||||||
func keyToFilename(key string) string {
|
func keyToFilename(key string) string {
|
||||||
h := md5.New()
|
h := md5.New()
|
||||||
io.WriteString(h, key)
|
_, _ = io.WriteString(h, key)
|
||||||
return hex.EncodeToString(h.Sum(nil))
|
return hex.EncodeToString(h.Sum(nil))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -75,7 +75,7 @@ func (c *cache) Delete(key string) {
|
||||||
|
|
||||||
func keyToFilename(key string) string {
|
func keyToFilename(key string) string {
|
||||||
h := md5.New()
|
h := md5.New()
|
||||||
io.WriteString(h, key)
|
_, _ = io.WriteString(h, key)
|
||||||
return hex.EncodeToString(h.Sum(nil))
|
return hex.EncodeToString(h.Sum(nil))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,7 @@ var (
|
||||||
func newImage(w, h int, pixels ...color.Color) image.Image {
|
func newImage(w, h int, pixels ...color.Color) image.Image {
|
||||||
m := image.NewNRGBA(image.Rect(0, 0, w, h))
|
m := image.NewNRGBA(image.Rect(0, 0, w, h))
|
||||||
if len(pixels) == 1 {
|
if len(pixels) == 1 {
|
||||||
draw.Draw(m, m.Bounds(), &image.Uniform{pixels[0]}, image.ZP, draw.Src)
|
draw.Draw(m, m.Bounds(), &image.Uniform{pixels[0]}, image.Point{}, draw.Src)
|
||||||
} else {
|
} else {
|
||||||
for i, p := range pixels {
|
for i, p := range pixels {
|
||||||
m.Set(i%w, i/w, p)
|
m.Set(i%w, i/w, p)
|
||||||
|
|
@ -106,22 +106,26 @@ func TestTransform(t *testing.T) {
|
||||||
src := newImage(2, 2, red, green, blue, yellow)
|
src := newImage(2, 2, red, green, blue, yellow)
|
||||||
|
|
||||||
buf := new(bytes.Buffer)
|
buf := new(bytes.Buffer)
|
||||||
png.Encode(buf, src)
|
if err := png.Encode(buf, src); err != nil {
|
||||||
|
t.Errorf("error encoding reference image: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
encode func(io.Writer, image.Image)
|
encode func(io.Writer, image.Image) error
|
||||||
exactOutput bool // whether input and output should match exactly
|
exactOutput bool // whether input and output should match exactly
|
||||||
}{
|
}{
|
||||||
{"bmp", func(w io.Writer, m image.Image) { bmp.Encode(w, m) }, true},
|
{"bmp", func(w io.Writer, m image.Image) error { return bmp.Encode(w, m) }, true},
|
||||||
{"gif", func(w io.Writer, m image.Image) { gif.Encode(w, m, nil) }, true},
|
{"gif", func(w io.Writer, m image.Image) error { return gif.Encode(w, m, nil) }, true},
|
||||||
{"jpeg", func(w io.Writer, m image.Image) { jpeg.Encode(w, m, nil) }, false},
|
{"jpeg", func(w io.Writer, m image.Image) error { return jpeg.Encode(w, m, nil) }, false},
|
||||||
{"png", func(w io.Writer, m image.Image) { png.Encode(w, m) }, true},
|
{"png", func(w io.Writer, m image.Image) error { return png.Encode(w, m) }, true},
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
buf := new(bytes.Buffer)
|
buf := new(bytes.Buffer)
|
||||||
tt.encode(buf, src)
|
if err := tt.encode(buf, src); err != nil {
|
||||||
|
t.Errorf("error encoding image: %v", err)
|
||||||
|
}
|
||||||
in := buf.Bytes()
|
in := buf.Bytes()
|
||||||
|
|
||||||
out, err := Transform(in, emptyOptions)
|
out, err := Transform(in, emptyOptions)
|
||||||
|
|
@ -152,7 +156,9 @@ func TestTransform(t *testing.T) {
|
||||||
func TestTransform_InvalidFormat(t *testing.T) {
|
func TestTransform_InvalidFormat(t *testing.T) {
|
||||||
src := newImage(2, 2, red, green, blue, yellow)
|
src := newImage(2, 2, red, green, blue, yellow)
|
||||||
buf := new(bytes.Buffer)
|
buf := new(bytes.Buffer)
|
||||||
png.Encode(buf, src)
|
if err := png.Encode(buf, src); err != nil {
|
||||||
|
t.Errorf("error encoding reference image: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
_, err := Transform(buf.Bytes(), Options{Format: "invalid"})
|
_, err := Transform(buf.Bytes(), Options{Format: "invalid"})
|
||||||
if err == nil {
|
if err == nil {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue