1
0
mirror of https://github.com/astaxie/beego.git synced 2024-06-18 12:34:13 +00:00

change the function args of init gzip method

This commit is contained in:
JessonChan 2016-03-22 16:42:42 +08:00
parent 959b9a5a58
commit 4db78f243e
2 changed files with 12 additions and 9 deletions

View File

@ -25,15 +25,13 @@ import (
"strconv" "strconv"
"strings" "strings"
"sync" "sync"
"github.com/astaxie/beego/config"
) )
var ( var (
//Content will only be compressed if content length is either unknown or greater than gzipMinLength.
gzipMinLength int
//Default size==20B same as nginx //Default size==20B same as nginx
defaultGzipMinLength = 20 defaultGzipMinLength = 20
//Content will only be compressed if content length is either unknown or greater than gzipMinLength.
gzipMinLength = defaultGzipMinLength
//The compression level used for deflate compression. (0-9). //The compression level used for deflate compression. (0-9).
gzipCompressLevel int gzipCompressLevel int
//List of HTTP methods to compress. If not set, only GET requests are compressed. //List of HTTP methods to compress. If not set, only GET requests are compressed.
@ -41,13 +39,14 @@ var (
getMethodOnly bool getMethodOnly bool
) )
func InitGzip(cf config.Configer) { func InitGzip(minLength, compressLevel int, methods []string) {
gzipMinLength = cf.DefaultInt("gzipMinLength", defaultGzipMinLength) if minLength >= 0 {
gzipCompressLevel = cf.DefaultInt("gzipCompressLevel", flate.BestSpeed) gzipMinLength = minLength
}
gzipCompressLevel = compressLevel
if gzipCompressLevel < flate.DefaultCompression || gzipCompressLevel > flate.BestCompression { if gzipCompressLevel < flate.DefaultCompression || gzipCompressLevel > flate.BestCompression {
gzipCompressLevel = flate.BestSpeed gzipCompressLevel = flate.BestSpeed
} }
methods := cf.DefaultStrings("includedMethods", []string{"GET"})
getMethodOnly = (len(methods) == 0) || (len(methods) == 1 && strings.ToUpper(methods[0]) == "GET") getMethodOnly = (len(methods) == 0) || (len(methods) == 1 && strings.ToUpper(methods[0]) == "GET")
includedMethods = make(map[string]bool, len(methods)) includedMethods = make(map[string]bool, len(methods))
for _, v := range methods { for _, v := range methods {

View File

@ -95,7 +95,11 @@ func registerAdmin() error {
func registerGzip() error { func registerGzip() error {
if BConfig.EnableGzip { if BConfig.EnableGzip {
context.InitGzip(AppConfig) context.InitGzip(
AppConfig.DefaultInt("gzipMinLength", -1),
AppConfig.DefaultInt("gzipCompressLevel", -1),
AppConfig.DefaultStrings("includedMethods", []string{"GET"}),
)
} }
return nil return nil
} }