diff --git a/pkg/serverconfigs/http_compression_config.go b/pkg/serverconfigs/http_compression_config.go index 63e4120..fb6cb75 100644 --- a/pkg/serverconfigs/http_compression_config.go +++ b/pkg/serverconfigs/http_compression_config.go @@ -49,6 +49,7 @@ type HTTPCompressionConfig struct { supportGzip bool supportDeflate bool supportBrotli bool + supportZSTD bool } // Init 初始化 @@ -133,6 +134,8 @@ func (this *HTTPCompressionConfig) Init() error { if this.BrotliRef == nil || (this.BrotliRef != nil && this.BrotliRef.IsOn && this.Brotli != nil && this.Brotli.IsOn) { this.supportBrotli = true } + case HTTPCompressionTypeZSTD: + this.supportZSTD = true } } @@ -244,6 +247,10 @@ func (this *HTTPCompressionConfig) MatchAcceptEncoding(acceptEncodings string) ( if this.supportBrotli && lists.ContainsString(encodings, "br") { return HTTPCompressionTypeBrotli, "br", true } + case HTTPCompressionTypeZSTD: + if this.supportZSTD && lists.ContainsString(encodings, "zstd") { + return HTTPCompressionTypeZSTD, "zstd", true + } } } diff --git a/pkg/serverconfigs/http_compression_types.go b/pkg/serverconfigs/http_compression_types.go index e4c4bfb..eaea66b 100644 --- a/pkg/serverconfigs/http_compression_types.go +++ b/pkg/serverconfigs/http_compression_types.go @@ -8,4 +8,5 @@ const ( HTTPCompressionTypeGzip HTTPCompressionType = "gzip" HTTPCompressionTypeDeflate HTTPCompressionType = "deflate" HTTPCompressionTypeBrotli HTTPCompressionType = "brotli" + HTTPCompressionTypeZSTD HTTPCompressionType = "zstd" )