diff --git a/alist.go b/alist.go index 138b8eb3..c62f2921 100644 --- a/alist.go +++ b/alist.go @@ -48,8 +48,8 @@ func main() { base := fmt.Sprintf("%s:%d", conf.Conf.Address, conf.Conf.Port) log.Infof("start server @ %s", base) var err error - if conf.Conf.Https { - err = r.RunTLS(base, conf.Conf.CertFile, conf.Conf.KeyFile) + if conf.Conf.Scheme.Https { + err = r.RunTLS(base, conf.Conf.Scheme.CertFile, conf.Conf.Scheme.KeyFile) } else { err = r.Run(base) } diff --git a/bootstrap/cache.go b/bootstrap/cache.go index 2ea7efd6..7d9dfba1 100644 --- a/bootstrap/cache.go +++ b/bootstrap/cache.go @@ -12,7 +12,11 @@ import ( // InitCache init cache func InitCache() { log.Infof("init cache...") - goCacheClient := goCache.New(60*time.Minute, 120*time.Minute) + c := conf.Conf.Cache + if c.Expiration == 0 { + c.Expiration, c.CleanupInterval = 60, 120 + } + goCacheClient := goCache.New(time.Duration(c.Expiration)*time.Minute, time.Duration(c.CleanupInterval)*time.Minute) goCacheStore := store.NewGoCache(goCacheClient, nil) conf.Cache = cache.New(goCacheStore) } diff --git a/conf/config.go b/conf/config.go index 147dba83..9efb19ed 100644 --- a/conf/config.go +++ b/conf/config.go @@ -10,14 +10,25 @@ type Database struct { TablePrefix string `json:"table_prefix"` DBFile string `json:"db_file"` } + +type Scheme struct { + Https bool `json:"https"` + CertFile string `json:"cert_file"` + KeyFile string `json:"key_file"` +} + +type CacheConfig struct { + Expiration int64 `json:"expiration"` + CleanupInterval int64 `json:"cleanup_interval"` +} + type Config struct { - Address string `json:"address"` - Port int `json:"port"` - Database Database `json:"database"` - Https bool `json:"https"` - CertFile string `json:"cert_file"` - KeyFile string `json:"key_file"` - Local bool `json:"local"` + Address string `json:"address"` + Port int `json:"port"` + Local bool `json:"local"` + Database Database `json:"database"` + Scheme Scheme `json:"scheme"` + Cache CacheConfig `json:"cache"` } func DefaultConfig() *Config { @@ -30,5 +41,9 @@ func DefaultConfig() *Config { TablePrefix: "x_", DBFile: "data/data.db", }, + Cache: CacheConfig{ + Expiration: 60, + CleanupInterval: 120, + }, } }