Commit 71c26a58 by Leon

feat: add environment variable switch for critical rate limit

parent 942a4311
...@@ -159,14 +159,15 @@ var ( ...@@ -159,14 +159,15 @@ var (
GlobalWebRateLimitNum int GlobalWebRateLimitNum int
GlobalWebRateLimitDuration int64 GlobalWebRateLimitDuration int64
CriticalRateLimitEnable bool
CriticalRateLimitNum = 20
CriticalRateLimitDuration int64 = 20 * 60
UploadRateLimitNum = 10 UploadRateLimitNum = 10
UploadRateLimitDuration int64 = 60 UploadRateLimitDuration int64 = 60
DownloadRateLimitNum = 10 DownloadRateLimitNum = 10
DownloadRateLimitDuration int64 = 60 DownloadRateLimitDuration int64 = 60
CriticalRateLimitNum = 20
CriticalRateLimitDuration int64 = 20 * 60
) )
var RateLimitKeyExpirationDuration = 20 * time.Minute var RateLimitKeyExpirationDuration = 20 * time.Minute
......
...@@ -99,6 +99,9 @@ func InitEnv() { ...@@ -99,6 +99,9 @@ func InitEnv() {
GlobalWebRateLimitNum = GetEnvOrDefault("GLOBAL_WEB_RATE_LIMIT", 60) GlobalWebRateLimitNum = GetEnvOrDefault("GLOBAL_WEB_RATE_LIMIT", 60)
GlobalWebRateLimitDuration = int64(GetEnvOrDefault("GLOBAL_WEB_RATE_LIMIT_DURATION", 180)) GlobalWebRateLimitDuration = int64(GetEnvOrDefault("GLOBAL_WEB_RATE_LIMIT_DURATION", 180))
CriticalRateLimitEnable = GetEnvOrDefaultBool("CRITICAL_RATE_LIMIT_ENABLE", true)
CriticalRateLimitNum = GetEnvOrDefault("CRITICAL_RATE_LIMIT", 20)
CriticalRateLimitDuration = int64(GetEnvOrDefault("CRITICAL_RATE_LIMIT_DURATION", 20*60))
initConstantEnv() initConstantEnv()
} }
......
...@@ -102,7 +102,10 @@ func GlobalAPIRateLimit() func(c *gin.Context) { ...@@ -102,7 +102,10 @@ func GlobalAPIRateLimit() func(c *gin.Context) {
} }
func CriticalRateLimit() func(c *gin.Context) { func CriticalRateLimit() func(c *gin.Context) {
return rateLimitFactory(common.CriticalRateLimitNum, common.CriticalRateLimitDuration, "CT") if common.CriticalRateLimitEnable {
return rateLimitFactory(common.CriticalRateLimitNum, common.CriticalRateLimitDuration, "CT")
}
return defNext
} }
func DownloadRateLimit() func(c *gin.Context) { func DownloadRateLimit() func(c *gin.Context) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment