compress

package
v3.2.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 22, 2021 License: MIT Imports: 14 Imported by: 0

Documentation

Overview

Package compress 提供一个支持内容压缩的中间件

Index

Constants

This section is empty.

Variables

View Source
var ErrExists = errors.New("已经存在相同名称的算法")

ErrExists 表示已经存在名称相同的压缩算法

Functions

This section is empty.

Types

type Compress

type Compress struct {
	// contains filtered or unexported fields
}

Compress 提供压缩功能的中件间

func New

func New(errlog *log.Logger, types ...string) *Compress

New 构建一个支持压缩的中间件

types 表示需要进行压缩处理的 mimetype 类型,可以是以下格式:

  • application/json 具体类型;
  • text* 表示以 text 开头的所有类型;
  • * 表示所有类型,一旦指定此值,则其它设置都将被忽略;

func (*Compress) AddAlgorithm

func (c *Compress) AddAlgorithm(name string, wf WriterFunc) error

AddAlgorithm 添加压缩算法

当前用户的 Accept-Encoding 的匹配到 * 时,按添加顺序查找真正的匹配项。 不能添加名为 identity 和 * 的算法。

如果未添加任何算法,则每个请求都相当于是 identity 规则。

func (*Compress) AddType

func (c *Compress) AddType(types ...string)

AddType 添加对媒体类型的支持

types 表示需要进行压缩处理的 mimetype 类型,可以是以下格式:

  • application/json 具体类型;
  • text* 表示以 text 开头的所有类型;
  • * 表示所有类型,一旦指定此值,则其它设置都将被忽略;

func (*Compress) DeleteType

func (c *Compress) DeleteType(types ...string)

DeleteType 删除对媒体类型的支持

types 的格式可参考 AddType 方法。

NOTE: 仅用于删除通过 AddType 添加的内容。

func (*Compress) Middleware

func (c *Compress) Middleware(next http.Handler) http.Handler

Middleware 将当前中间件应用于 next

func (*Compress) MiddlewareFunc

func (c *Compress) MiddlewareFunc(next func(w http.ResponseWriter, r *http.Request)) http.Handler

MiddlewareFunc 将当前中间件应用于 next

func (*Compress) SetAlgorithm

func (c *Compress) SetAlgorithm(name string, wf WriterFunc) error

SetAlgorithm 设置压缩算法

如果 w 为 nil,则表示去掉此算法的支持。

type Writer

type Writer interface {
	io.WriteCloser
	Reset(io.Writer)
}

Writer 所有压缩对象实现的接口

func NewBrotli

func NewBrotli(w io.Writer) (Writer, error)

NewBrotli 新建 br 算法

func NewDeflate

func NewDeflate(w io.Writer) (Writer, error)

NewDeflate 新建 deflate 算法

func NewGzip

func NewGzip(w io.Writer) (Writer, error)

NewGzip 新建 gzip 算法

type WriterFunc

type WriterFunc func(w io.Writer) (Writer, error)

WriterFunc 将普通的 io.Writer 封装成 Writer 接口对象

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL