data

package
v0.0.0-...-def77e7 Latest Latest
Warning

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

Go to latest
Published: Apr 16, 2025 License: AGPL-3.0 Imports: 8 Imported by: 0

Documentation

Overview

Package data 与数据操作相关。 比如数据的存储策略、白名单和黑名单等。

Index

Constants

This section is empty.

Variables

View Source
var (
	// 找不到策略函数。
	ErrFuncFind = errors.New("failed to find ploy function")
	// 策略函数签名错误。
	ErrFuncSign = errors.New("invalid Ploy function signature")
)

几个错误信息模板。

View Source
var Log = base.Log

Log 日志记录器引用

Functions

This section is empty.

Types

type GoScript

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

GoScript Go脚本策略处理实现。

func NewGoScript

func NewGoScript(code string) (*GoScript, error)

NewGoScript 新建Go脚本策略器。

func (*GoScript) Close

func (gs *GoScript) Close()

Close 关闭脚本环境。 注:无需操作,完成接口

func (*GoScript) Pass

func (gs *GoScript) Pass(id []byte, size int) bool

Pass 策略脚本判断。

type LuaScript

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

LuaScript Lua脚本策略处理实现。

func NewLuaScript

func NewLuaScript(code string) (*LuaScript, error)

NewLuaScript 新建一个Lua脚本策略器。

func (*LuaScript) Close

func (ls *LuaScript) Close()

Close 关闭脚本执行环境。

func (*LuaScript) Pass

func (ls *LuaScript) Pass(id []byte, size int) bool

Pass 策略脚本判断。

type MatchList

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

MatchList 定义匹配列表

func NewMatchList

func NewMatchList() *MatchList

func (*MatchList) Add

func (m *MatchList) Add(pattern string)

Add 添加一条匹配式 不正确的正则表达式在测试时会被忽略,但会错误记入日志。 应当在程序初始启动时设置。 @pattern Go正则表达式串

func (*MatchList) Match

func (m *MatchList) Match(id []byte) bool

Match 检查目标id是否匹配。

type PolicyManager

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

PolicyManager 策略管理器

func NewPolicyManager

func NewPolicyManager() *PolicyManager

NewPolicyManager 创建策略管理器。 内部包含黑白名单的处理, 优先级:白名单 > 黑名单 > 策略函数

func (*PolicyManager) Blacklist

func (pm *PolicyManager) Blacklist(list []string)

Blacklist 设置黑名单。 @list 名单条目清单

func (*PolicyManager) Close

func (pm *PolicyManager) Close()

Close 关闭策略管理器。 执行必要的资源清理,在退出程序前执行。

func (*PolicyManager) Pass

func (pm *PolicyManager) Pass(id []byte, size int) bool

Pass 策略通关检查。 @id 目标数据ID @size 目标数据大小 @return 是否通过(确定存储)

func (*PolicyManager) Strategy

func (pm *PolicyManager) Strategy(iter Strategy)

Strategy 设置策略处理器。 @iter 策略实现对象(Lua|Go|...)

func (*PolicyManager) Whitelist

func (pm *PolicyManager) Whitelist(list []string)

Whitelist 设置白名单。 @list 名单条目清单

type Strategy

type Strategy interface {
	// 主判断函数。
	// 根据目标数据ID判断是否符合存储要求。
	// 数据大小可以是一个参考项。
	Pass(id []byte, size int) bool

	// 完成可能需要的资源回收。
	Close()
}

Strategy 定义策略接口

Jump to

Keyboard shortcuts

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