内容压缩支持例外扩展名

This commit is contained in:
GoEdgeLab
2022-12-30 12:04:23 +08:00
parent 9c9019cb22
commit 86fd9aa9a6

View File

@@ -37,13 +37,15 @@ type HTTPCompressionConfig struct {
MaxLength *shared.SizeCapacity `yaml:"maxLength" json:"maxLength"` // 最大压缩对象
MimeTypes []string `yaml:"mimeTypes" json:"mimeTypes"` // 支持的MimeType支持image/*这样的通配符使用
Extensions []string `yaml:"extensions" json:"extensions"` // 文件扩展名,包含点符号,不区分大小写
ExceptExtensions []string `yaml:"exceptExtensions" json:"exceptExtensions"` // 例外扩展名
Conds *shared.HTTPRequestCondsConfig `yaml:"conds" json:"conds"` // 匹配条件
EnablePartialContent bool `yaml:"enablePartialContent" json:"enablePartialContent"` // 支持PartialContent压缩
minLength int64
maxLength int64
mimeTypeRules []*shared.MimeTypeRule
extensions []string
minLength int64
maxLength int64
mimeTypeRules []*shared.MimeTypeRule
extensions []string
exceptExtensions []string
types []HTTPCompressionType
@@ -89,6 +91,15 @@ func (this *HTTPCompressionConfig) Init() error {
this.extensions = append(this.extensions, ext)
}
this.exceptExtensions = []string{}
for _, ext := range this.ExceptExtensions {
ext = strings.ToLower(ext)
if len(ext) > 0 && ext[0] != '.' {
ext = "." + ext
}
this.exceptExtensions = append(this.exceptExtensions, ext)
}
if this.Gzip != nil {
err := this.Gzip.Init()
if err != nil {
@@ -174,6 +185,17 @@ func (this *HTTPCompressionConfig) MatchResponse(mimeType string, contentLength
return false
}
// except extensions
if len(this.exceptExtensions) > 0 {
if len(requestExt) > 0 {
for _, ext := range this.exceptExtensions {
if ext == requestExt {
return false
}
}
}
}
// extensions
if len(this.extensions) > 0 {
if len(requestExt) > 0 {