Decompress
Decompress middleware decompresses the HTTP request body when the Content-Encoding
header is set to gzip.
All core middleware lives in the middleware package:
import "github.com/labstack/echo/v5/middleware"e.Use(middleware.Decompress())Custom configuration
Section titled “Custom configuration”e := echo.New()e.Use(middleware.DecompressWithConfig(middleware.DecompressConfig{ Skipper: middleware.DefaultSkipper,}))Configuration
Section titled “Configuration”DecompressConfig · github.com/labstack/echo/v5@5196b9b
| Field | Type | Description | Source |
|---|---|---|---|
Skipper | Skipper | Skipper defines a function to skip middleware. | L19 |
GzipDecompressPool | Decompressor | GzipDecompressPool defines an interface to provide the sync.Pool used to create/store Gzip readers | L22 |
MaxDecompressedSize | int64 | MaxDecompressedSize limits the maximum size of decompressed request body in bytes. If the decompressed body exceeds this limit, the middleware returns HTTP 413 error. This prevents zip bomb attacks where small compressed payloads decompress to huge sizes. Default: 100 * MB (104,857,600 bytes) Set to -1 to disable limits (not recommended in production). | L29 |
Default configuration
Section titled “Default configuration”// Effective defaults applied when fields are left unset.DecompressConfig{ Skipper: DefaultSkipper, GzipDecompressPool: &DefaultGzipDecompressPool{}, MaxDecompressedSize: 100 * MB,}