跳到主要内容
版本: v2.x

压缩

Fiber 的压缩中间件,根据 Accept-Encoding 头部信息,使用 gzipdeflatebrotli 算法压缩响应。

注意

该压缩中间件避免压缩小于 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) boolNext 定义一个函数,当返回 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
)