压缩
Fiber 的压缩中间件,根据 Accept-Encoding 头部信息,使用 gzip
、deflate
和 brotli
算法压缩响应。
注意
该压缩中间件避免压缩小于 200 字节的响应体。这是基于观察得出的决定,在这种情况下,压缩后的大小可能超过原始大小,导致压缩效率低下。更多
签名
func New(config ...Config) fiber.Handler
示例
导入 Fiber Web 框架的一部分中间件包
import (
"github.com/gofiber/fiber/v2"
"github.com/gofiber/fiber/v2/middleware/compress"
)
初始化 Fiber 应用后,你可以使用以下方式
// Initialize default config
app.Use(compress.New())
// Or extend your config for customization
app.Use(compress.New(compress.Config{
Level: compress.LevelBestSpeed, // 1
}))
// Skip middleware for specific routes
app.Use(compress.New(compress.Config{
Next: func(c *fiber.Ctx) bool {
return c.Path() == "/dont_compress"
},
Level: compress.LevelBestSpeed, // 1
}))
配置
配置
属性 | 类型 | 描述 | 默认值 |
---|---|---|---|
下一个 | func(*fiber.Ctx) bool | Next 定义一个函数,当返回 true 时跳过此中间件。 | nil |
级别 | 级别 | Level 决定压缩算法。 | LevelDefault (0) |
"Level" 字段的可能值为
LevelDisabled (-1)
: 禁用压缩。LevelDefault (0)
: 默认压缩级别。LevelBestSpeed (1)
: 最佳压缩速度。LevelBestCompression (2)
: 最佳压缩。
默认配置
var ConfigDefault = Config{
Next: nil,
Level: LevelDefault,
}
常量
// Compression levels
const (
LevelDisabled = -1
LevelDefault = 0
LevelBestSpeed = 1
LevelBestCompression = 2
)