压缩
适用于 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 |
级别 | 级别 | 级别确定压缩算法。 | LevelDefault (0) |
“级别”字段的可能值为
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
)