middleware

package
v0.5.6 Latest Latest
Warning

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

Go to latest
Published: Mar 21, 2026 License: Apache-2.0 Imports: 23 Imported by: 0

Documentation

Index

Constants

View Source
const (
	LIMIT_KEY               = "api-limiter:%d"
	INTERNAL                = 1 * time.Minute
	RATE_LIMIT_EXCEEDED_MSG = "您的速率达到上限,请稍后再试。"
	SERVER_ERROR_MSG        = "Server error"
)

Variables

View Source
var (
	GlobalApiRateLimitNum            = 300
	GlobalApiRateLimitDuration int64 = 3 * 60

	GlobalWebRateLimitNum            = 180
	GlobalWebRateLimitDuration int64 = 3 * 60

	UploadRateLimitNum            = 10
	UploadRateLimitDuration int64 = 60

	DownloadRateLimitNum            = 10
	DownloadRateLimitDuration int64 = 60

	CriticalRateLimitNum            = 20
	CriticalRateLimitDuration int64 = 20 * 60
)

All duration's unit is seconds Shouldn't larger then RateLimitKeyExpirationDuration

Functions

func APIEnabled

func APIEnabled(types string) gin.HandlerFunc

func AdminAuth

func AdminAuth() func(c *gin.Context)

func CORS

func CORS() gin.HandlerFunc

func Cache

func Cache() func(c *gin.Context)

func ClaudeAuth

func ClaudeAuth() func(c *gin.Context)

func ContextUserId

func ContextUserId() func(c *gin.Context)

ContextId adds the user ID from the Gin context to the request context

func CriticalRateLimit

func CriticalRateLimit() func(c *gin.Context)

func Distribute

func Distribute() func(c *gin.Context)

func DownloadRateLimit

func DownloadRateLimit() func(c *gin.Context)

func DynamicRedisRateLimiter

func DynamicRedisRateLimiter() gin.HandlerFunc

func GeminiAuth

func GeminiAuth() func(c *gin.Context)

func GinzapWithConfig

func GinzapWithConfig() gin.HandlerFunc

func GlobalAPIRateLimit

func GlobalAPIRateLimit() func(c *gin.Context)

func GlobalWebRateLimit

func GlobalWebRateLimit() func(c *gin.Context)

func MetricsWithBasicAuth

func MetricsWithBasicAuth() gin.HandlerFunc

func MjAuth

func MjAuth() func(c *gin.Context)

func OpenaiAuth

func OpenaiAuth() func(c *gin.Context)

func PricesAuth

func PricesAuth() gin.HandlerFunc

func RelayCluadePanicRecover

func RelayCluadePanicRecover() gin.HandlerFunc

func RelayGeminiPanicRecover

func RelayGeminiPanicRecover() gin.HandlerFunc

func RelayKlingPanicRecover

func RelayKlingPanicRecover() gin.HandlerFunc

func RelayMJPanicRecover

func RelayMJPanicRecover() gin.HandlerFunc

func RelayPanicRecover

func RelayPanicRecover() gin.HandlerFunc

func RelaySunoPanicRecover

func RelaySunoPanicRecover() gin.HandlerFunc

func RequestId

func RequestId() func(c *gin.Context)

func RootAuth

func RootAuth() func(c *gin.Context)

func SetUpLogger

func SetUpLogger(server *gin.Engine)

func SpecifiedChannel

func SpecifiedChannel() func(c *gin.Context)

func Telegram

func Telegram() func(c *gin.Context)

func TrySetUserBySession

func TrySetUserBySession() func(c *gin.Context)

func TurnstileCheck

func TurnstileCheck() gin.HandlerFunc

func UploadRateLimit

func UploadRateLimit() func(c *gin.Context)

func UserAuth

func UserAuth() func(c *gin.Context)

Types

type GroupDistributor

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

GroupDistributor 统一分组分发逻辑

func NewGroupDistributor

func NewGroupDistributor(c *gin.Context) *GroupDistributor

NewGroupDistributor 创建分组分发器

func (*GroupDistributor) SetupGroups

func (gd *GroupDistributor) SetupGroups() error

SetupGroups 设置用户分组和令牌分组

Jump to

Keyboard shortcuts

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