shared

package
v0.0.9 Latest Latest
Warning

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

Go to latest
Published: Mar 4, 2019 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AccessConfig

type AccessConfig struct {
	On      bool            `yaml:"on" json:"on"`           // 是否开启
	AllowOn bool            `yaml:"allowOn" json:"allowOn"` // 白名单是否开启
	DenyOn  bool            `yaml:"denyOn" json:"denyOn"`   // 黑名单是否开启
	Allow   []*ClientConfig `yaml:"allow" json:"allow"`     // 允许的IP
	Deny    []*ClientConfig `yaml:"deny" json:"deny"`       // 禁止的IP
}

访问控制

func (*AccessConfig) AddAllow

func (this *AccessConfig) AddAllow(client *ClientConfig)

添加允许的客户端

func (*AccessConfig) AddDeny

func (this *AccessConfig) AddDeny(client *ClientConfig)

添加禁用的客户端

func (*AccessConfig) Validate

func (this *AccessConfig) Validate() error

校验

type AccessPolicy

type AccessPolicy struct {

	// 流量控制
	Traffic struct {
		On    bool `yaml:"on" json:"on"` // 是否开启
		Total struct {
			On    bool  `yaml:"on" json:"on"`       // 是否开启
			Total int64 `yaml:"total" json:"total"` // 总量
			Used  int64 `yaml:"used" json:"used"`   // 已使用量
		} `yaml:"total" json:"total"` // 总量控制
		Second struct {
			On       bool  `yaml:"on" json:"on"`             // 是否开启
			Total    int64 `yaml:"total" json:"total"`       // 总量
			Duration int64 `yaml:"duration" json:"duration"` // 时间长度
			FromTime int64 `yaml:"fromTime" json:"fromTime"` // 开始时间,也是结束时间
			Used     int64 `yaml:"used" json:"used"`         // 已使用量
		} `yaml:"second" json:"second"`
		Minute struct {
			On       bool  `yaml:"on" json:"on"`             // 是否开启
			Total    int64 `yaml:"total" json:"total"`       // 总量
			Duration int64 `yaml:"duration" json:"duration"` // 时间长度
			FromTime int64 `yaml:"fromTime" json:"fromTime"` // 开始时间
			ToTime   int64 `yaml:"toTime" json:"toTime"`     // 结束时间
			Used     int64 `yaml:"used" json:"used"`         // 已使用量
		} `yaml:"minute" json:"minute"`
		Hour struct {
			On       bool  `yaml:"on" json:"on"`             // 是否开启
			Total    int64 `yaml:"total" json:"total"`       // 总量
			Duration int64 `yaml:"duration" json:"duration"` // 时间长度
			FromTime int64 `yaml:"fromTime" json:"fromTime"` // 开始时间
			ToTime   int64 `yaml:"toTime" json:"toTime"`     // 结束时间
			Used     int64 `yaml:"used" json:"used"`         // 已使用量
		} `yaml:"hour" json:"hour"`
		Day struct {
			On       bool  `yaml:"on" json:"on"`             // 是否开启
			Total    int64 `yaml:"total" json:"total"`       // 总量
			Duration int64 `yaml:"duration" json:"duration"` // 时间长度
			FromTime int64 `yaml:"fromTime" json:"fromTime"` // 开始时间
			ToTime   int64 `yaml:"toTime" json:"toTime"`     // 结束时间
			Used     int64 `yaml:"used" json:"used"`         // 已使用量
		} `yaml:"day" json:"day"`
		Month struct {
			On       bool  `yaml:"on" json:"on"`             // 是否开启
			Total    int64 `yaml:"total" json:"total"`       // 总量
			Duration int64 `yaml:"duration" json:"duration"` // 时间长度
			FromTime int64 `yaml:"fromTime" json:"fromTime"` // 开始时间
			ToTime   int64 `yaml:"toTime" json:"toTime"`     // 结束时间
			Used     int64 `yaml:"used" json:"used"`         // 已使用量
		} `yaml:"month" json:"month"`
	} `yaml:"traffic" json:"traffic"` // 流量控制

	// 访问控制
	Access AccessConfig `yaml:"access" json:"access"` // 访问控制
	// contains filtered or unexported fields
}

API控制策略

func NewAccessPolicy

func NewAccessPolicy() *AccessPolicy

获取新对象

func (*AccessPolicy) AllowAccess

func (this *AccessPolicy) AllowAccess(ip string) bool

检查权限

func (*AccessPolicy) AllowTraffic

func (this *AccessPolicy) AllowTraffic() (reason string, allowed bool)

检查流量

func (*AccessPolicy) FinishChange

func (this *AccessPolicy) FinishChange()

设置已完成改变

func (*AccessPolicy) IncreaseTraffic

func (this *AccessPolicy) IncreaseTraffic()

增加流量

func (*AccessPolicy) IsChanged

func (this *AccessPolicy) IsChanged() bool

判断是否改变

func (*AccessPolicy) Validate

func (this *AccessPolicy) Validate() error

校验

type CachePolicy

type CachePolicy struct {
	Filename string `yaml:"filename" json:"filename"` // 文件名
	On       bool   `yaml:"on" json:"on"`             // 是否开启 TODO
	Name     string `yaml:"name" json:"name"`         // 名称

	Key      string `yaml:"key" json:"key"`           // 每个缓存的Key规则,里面可以有变量
	Capacity string `yaml:"capacity" json:"capacity"` // 最大内容容量
	Life     string `yaml:"life" json:"life"`         // 时间
	Status   []int  `yaml:"status" json:"status"`     // 缓存的状态码列表
	MaxSize  string `yaml:"maxSize" json:"maxSize"`   // 能够请求的最大尺寸

	Type    string                 `yaml:"type" json:"type"`       // 类型
	Options map[string]interface{} `yaml:"options" json:"options"` // 选项
	// contains filtered or unexported fields
}

缓存策略配置

func NewCachePolicy

func NewCachePolicy() *CachePolicy

获取新对象

func NewCachePolicyFromFile

func NewCachePolicyFromFile(file string) *CachePolicy

从文件中读取缓存策略

func (*CachePolicy) CapacitySize

func (this *CachePolicy) CapacitySize() float64

容量

func (*CachePolicy) Delete

func (this *CachePolicy) Delete() error

删除

func (*CachePolicy) LifeDuration

func (this *CachePolicy) LifeDuration() time.Duration

生命周期

func (*CachePolicy) MaxDataSize

func (this *CachePolicy) MaxDataSize() float64

最大数据尺寸

func (*CachePolicy) Save

func (this *CachePolicy) Save() error

保存

func (*CachePolicy) Validate

func (this *CachePolicy) Validate() error

校验

type ClientConfig

type ClientConfig struct {
	Id          string `yaml:"id" json:"id"`                   // ID
	On          bool   `yaml:"on" json:"on"`                   // 是否开启
	IP          string `yaml:"ip" json:"ip"`                   // IP
	Description string `yaml:"description" json:"description"` // 描述
	// contains filtered or unexported fields
}

客户端配置

func NewClientConfig

func NewClientConfig() *ClientConfig

取得新配置对象

func (*ClientConfig) Match

func (this *ClientConfig) Match(ip string) bool

判断是否匹配某个IP

func (*ClientConfig) Validate

func (this *ClientConfig) Validate() error

校验

type EnvVariable

type EnvVariable struct {
	Name  string `yaml:"name" json:"name"`   // 变量名
	Value string `yaml:"value" json:"value"` // 变量值
}

环境变量

type HeaderConfig

type HeaderConfig struct {
	On     bool   `yaml:"on" json:"on"`         // 是否开启
	Id     string `yaml:"id" json:"id"`         // ID
	Name   string `yaml:"name" json:"name"`     // Name
	Value  string `yaml:"value" json:"value"`   // Value
	Always bool   `yaml:"always" json:"always"` // 是否忽略状态码
	Status []int  `yaml:"status" json:"status"` // 支持的状态码
	// contains filtered or unexported fields
}

头部信息定义

func NewHeaderConfig

func NewHeaderConfig() *HeaderConfig

获取新Header对象

func (*HeaderConfig) Copy

func (this *HeaderConfig) Copy() *HeaderConfig

设置StatusMap

func (*HeaderConfig) Match

func (this *HeaderConfig) Match(statusCode int) bool

判断是否匹配状态码

func (*HeaderConfig) Validate

func (this *HeaderConfig) Validate() error

校验

type HeaderList

type HeaderList struct {
	// 添加的Headers
	Headers []*HeaderConfig `yaml:"headers" json:"headers"`

	// 忽略的Headers
	IgnoreHeaders []string `yaml:"ignoreHeaders" json:"ignoreHeaders"`
}

HeaderList定义

func (*HeaderList) AddHeader

func (this *HeaderList) AddHeader(header *HeaderConfig)

添加Header

func (*HeaderList) AddIgnoreHeader

func (this *HeaderList) AddIgnoreHeader(name string)

添加IgnoreHeader

func (*HeaderList) AllHeaders

func (this *HeaderList) AllHeaders() []*HeaderConfig

取得所有的Header

func (*HeaderList) AllIgnoreHeaders

func (this *HeaderList) AllIgnoreHeaders() []string

取得所有的IgnoreHeader

func (*HeaderList) ContainsHeader

func (this *HeaderList) ContainsHeader(name string) bool

判断是否包含Header

func (*HeaderList) ContainsIgnoreHeader

func (this *HeaderList) ContainsIgnoreHeader(name string) bool

判断是否包含IgnoreHeader

func (*HeaderList) FindHeader

func (this *HeaderList) FindHeader(headerId string) *HeaderConfig

查找Header

func (*HeaderList) FormatHeaders

func (this *HeaderList) FormatHeaders(formatter func(source string) string) []*HeaderConfig

格式化Header

func (*HeaderList) RemoveHeader

func (this *HeaderList) RemoveHeader(headerId string)

移除Header

func (*HeaderList) RemoveIgnoreHeader

func (this *HeaderList) RemoveIgnoreHeader(name string)

移除IgnoreHeader

func (*HeaderList) UpdateIgnoreHeader

func (this *HeaderList) UpdateIgnoreHeader(oldName string, newName string)

修改IgnoreHeader

func (*HeaderList) ValidateHeaders

func (this *HeaderList) ValidateHeaders() error

校验

type HeaderListInterface

type HeaderListInterface interface {
	// 校验
	ValidateHeaders() error

	// 取得所有的IgnoreHeader
	AllIgnoreHeaders() []string

	// 添加IgnoreHeader
	AddIgnoreHeader(name string)

	// 判断是否包含IgnoreHeader
	ContainsIgnoreHeader(name string) bool

	// 移除IgnoreHeader
	RemoveIgnoreHeader(name string)

	// 修改IgnoreHeader
	UpdateIgnoreHeader(oldName string, newName string)

	// 取得所有的Header
	AllHeaders() []*HeaderConfig

	// 添加Header
	AddHeader(header *HeaderConfig)

	// 判断是否包含Header
	ContainsHeader(name string) bool

	// 查找Header
	FindHeader(headerId string) *HeaderConfig

	// 移除Header
	RemoveHeader(headerId string)

	// 格式化Headers
	FormatHeaders(formatter func(source string) string) []*HeaderConfig
}

HeaderList相关操作接口

Jump to

Keyboard shortcuts

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