Files
EdgeCommon/pkg/serverconfigs/http_cache_config.go

38 lines
1.0 KiB
Go
Raw Normal View History

2020-10-04 20:38:03 +08:00
package serverconfigs
2021-10-17 20:22:01 +08:00
import (
"encoding/json"
"github.com/iwind/TeaGo/rands"
)
2020-12-18 21:19:25 +08:00
2020-10-04 20:38:03 +08:00
type HTTPCacheConfig struct {
IsPrior bool `yaml:"isPrior" json:"isPrior"`
IsOn bool `yaml:"isOn" json:"isOn"`
2021-12-02 10:03:14 +08:00
AddStatusHeader bool `yaml:"addStatusHeader" json:"addStatusHeader"` // 是否增加命中状态HeaderX-Cache
AddAgeHeader bool `yaml:"addAgeHeader" json:"addAgeHeader"` // 是否增加Age Header
2021-10-17 20:22:01 +08:00
PurgeIsOn bool `yaml:"purgeIsOn" json:"purgeIsOn"` // 是否允许使用Purge方法清理
2021-12-02 10:03:14 +08:00
PurgeKey string `yaml:"purgeKey" json:"purgeKey"` // Purge时使用的X-Edge-Purge-Key
2021-05-12 16:10:17 +08:00
2020-10-04 20:38:03 +08:00
CacheRefs []*HTTPCacheRef `yaml:"cacheRefs" json:"cacheRefs"` // 缓存配置
}
func (this *HTTPCacheConfig) Init() error {
for _, cacheRef := range this.CacheRefs {
err := cacheRef.Init()
if err != nil {
return err
}
}
2021-10-17 20:22:01 +08:00
if this.PurgeIsOn && len(this.PurgeKey) == 0 {
this.PurgeKey = rands.HexString(32)
}
2020-10-04 20:38:03 +08:00
return nil
}
2020-12-18 21:19:25 +08:00
func (this *HTTPCacheConfig) AsJSON() ([]byte, error) {
return json.Marshal(this)
}