From fa19e9ebe7d1f0e3fcafe5fe5db1701edacfcd1b Mon Sep 17 00:00:00 2001 From: bryan newbold Date: Wed, 31 May 2023 19:15:38 -0700 Subject: [PATCH] bskyweb: config gzip to skip some files --- bskyweb/cmd/bskyweb/server.go | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/bskyweb/cmd/bskyweb/server.go b/bskyweb/cmd/bskyweb/server.go index a0b5d338d0..8d322fbe30 100644 --- a/bskyweb/cmd/bskyweb/server.go +++ b/bskyweb/cmd/bskyweb/server.go @@ -101,8 +101,19 @@ func serve(cctx *cli.Context) error { RedirectCode: http.StatusFound, })) - // enable gzip - e.Use(middleware.Gzip()) + // gzip transport compression for most responses. + // echo middleware is pretty naive, defaults to compressing every response, + // of any mimetype or size. we configure to skip some cases, but this is a + // pretty incomplete set of patterns. + e.Use(middleware.GzipWithConfig(middleware.GzipConfig{ + Skipper: func(c echo.Context) bool { + // don't compress PNG files, specifically + return strings.HasSuffix(c.Request().URL.Path, ".png") + }, + Level: -1, // default + // TODO: https://github.com/labstack/echo/pull/2267 + //MinLength: 1024, // default is "0" + })) // // configure routes