Files
EdgeCommon/pkg/serverconfigs/http_cache_storage_file.go

48 lines
1.7 KiB
Go
Raw Normal View History

2020-10-04 20:38:03 +08:00
package serverconfigs
import "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/shared"
type CacheDir struct {
Path string `yaml:"path" json:"path"` // 目录
Capacity *shared.SizeCapacity `yaml:"capacity" json:"capacity"` // 容量限制 TODO 暂时不实现
}
2022-01-12 21:09:23 +08:00
// HTTPFileCacheStorage 文件缓存存储策略
2020-10-04 20:38:03 +08:00
type HTTPFileCacheStorage struct {
Dir string `yaml:"dir" json:"dir"` // 目录
MinFreeSize *shared.SizeCapacity `yaml:"minFreeSize" json:"minFreeSize"` // 最小剩余空间
SubDirs []*CacheDir `yaml:"cacheDir" json:"subDirs"` // 子目录
MemoryPolicy *HTTPCachePolicy `yaml:"memoryPolicy" json:"memoryPolicy"` // 内存二级缓存
2022-01-12 21:09:23 +08:00
2022-04-04 19:45:26 +08:00
OpenFileCache *OpenFileCacheConfig `yaml:"openFileCache" json:"openFileCache"` // open file cache配置
EnableSendfile bool `yaml:"enableSendFile" json:"enableSendfile"` // 是否启用Sendfile
2024-03-29 18:31:53 +08:00
EnableMMAP bool `yaml:"enableMMAP" json:"enableMMAP"` // 是否启用MMAP
EnableIncompletePartialContent bool `yaml:"enableIncompletePartialContent" json:"enableIncompletePartialContent"` // 允许读取未下载完整的Partial Content
2024-03-29 18:31:53 +08:00
}
func NewHTTPFileCacheStorage() *HTTPFileCacheStorage {
return &HTTPFileCacheStorage{
EnableMMAP: false,
EnableIncompletePartialContent: true,
2024-03-29 18:31:53 +08:00
}
2020-10-04 20:38:03 +08:00
}
func (this *HTTPFileCacheStorage) Init() error {
2022-01-12 21:09:23 +08:00
if this.OpenFileCache != nil {
err := this.OpenFileCache.Init()
if err != nil {
return err
}
}
if this.MemoryPolicy != nil {
err := this.MemoryPolicy.Init()
if err != nil {
return err
}
}
2020-10-04 20:38:03 +08:00
return nil
}