diff --git a/internal/web/actions/default/servers/components/cache/cacheutils/utils.go b/internal/web/actions/default/servers/components/cache/cacheutils/utils.go index 4848982c..c7dda883 100644 --- a/internal/web/actions/default/servers/components/cache/cacheutils/utils.go +++ b/internal/web/actions/default/servers/components/cache/cacheutils/utils.go @@ -29,11 +29,12 @@ func FindCachePolicy(parent *actionutils.ParentAction, cachePolicyId int64) (*se if len(resp.HttpCachePolicyJSON) == 0 { return nil, errors.New("cache policy not found") } - config := &serverconfigs.HTTPCachePolicy{} + var config = &serverconfigs.HTTPCachePolicy{} err = json.Unmarshal(resp.HttpCachePolicyJSON, config) if err != nil { return nil, err } + return config, nil } diff --git a/internal/web/actions/default/servers/components/cache/createPopup.go b/internal/web/actions/default/servers/components/cache/createPopup.go index 08d497de..33424c02 100644 --- a/internal/web/actions/default/servers/components/cache/createPopup.go +++ b/internal/web/actions/default/servers/components/cache/createPopup.go @@ -37,11 +37,12 @@ func (this *CreatePopupAction) RunPost(params struct { FileEnableSendfile bool FileMinFreeSizeJSON []byte - CapacityJSON []byte - MaxSizeJSON []byte - FetchTimeoutJSON []byte - SyncCompressionCache bool - EnableMMAP bool + CapacityJSON []byte + MaxSizeJSON []byte + FetchTimeoutJSON []byte + SyncCompressionCache bool + EnableMMAP bool + EnableIncompletePartialContent bool Description string IsOn bool @@ -95,10 +96,11 @@ func (this *CreatePopupAction) RunPost(params struct { MemoryPolicy: &serverconfigs.HTTPCachePolicy{ Capacity: memoryCapacity, }, - OpenFileCache: openFileCacheConfig, - EnableSendfile: params.FileEnableSendfile, - MinFreeSize: minFreeSize, - EnableMMAP: params.EnableMMAP, + OpenFileCache: openFileCacheConfig, + EnableSendfile: params.FileEnableSendfile, + MinFreeSize: minFreeSize, + EnableMMAP: params.EnableMMAP, + EnableIncompletePartialContent: params.EnableIncompletePartialContent, } case serverconfigs.CachePolicyStorageMemory: options = &serverconfigs.HTTPMemoryCacheStorage{} diff --git a/internal/web/actions/default/servers/components/cache/update.go b/internal/web/actions/default/servers/components/cache/update.go index 44dfcd9f..24502fe3 100644 --- a/internal/web/actions/default/servers/components/cache/update.go +++ b/internal/web/actions/default/servers/components/cache/update.go @@ -59,6 +59,14 @@ func (this *UpdateAction) RunGet(params struct { cachePolicy.Options["enableMMAP"] = false } } + + // fix enableIncompletePartialContent + { + _, ok := cachePolicy.Options["enableIncompletePartialContent"] + if !ok { + cachePolicy.Options["enableIncompletePartialContent"] = true + } + } } this.Data["cachePolicy"] = cachePolicy @@ -87,7 +95,8 @@ func (this *UpdateAction) RunPost(params struct { SyncCompressionCache bool FetchTimeoutJSON []byte - EnableMMAP bool + EnableMMAP bool + EnableIncompletePartialContent bool Description string IsOn bool @@ -146,10 +155,11 @@ func (this *UpdateAction) RunPost(params struct { MemoryPolicy: &serverconfigs.HTTPCachePolicy{ Capacity: memoryCapacity, }, - OpenFileCache: openFileCacheConfig, - EnableSendfile: params.FileEnableSendfile, - MinFreeSize: minFreeSize, - EnableMMAP: params.EnableMMAP, + OpenFileCache: openFileCacheConfig, + EnableSendfile: params.FileEnableSendfile, + MinFreeSize: minFreeSize, + EnableMMAP: params.EnableMMAP, + EnableIncompletePartialContent: params.EnableIncompletePartialContent, } case serverconfigs.CachePolicyStorageMemory: options = &serverconfigs.HTTPMemoryCacheStorage{} diff --git a/web/views/@default/servers/components/cache/createPopup.html b/web/views/@default/servers/components/cache/createPopup.html index cf55ddf2..458b8227 100644 --- a/web/views/@default/servers/components/cache/createPopup.html +++ b/web/views/@default/servers/components/cache/createPopup.html @@ -84,6 +84,13 @@

使用sendfile提升发送缓存文件的效率。

+ + 允许读取不完整的Partial Content + + +

允许在有一部分内容缓存的情况下读取分区内容,剩余的部分将会自动回源读取。

+ + 启用MMAP diff --git a/web/views/@default/servers/components/cache/policy.html b/web/views/@default/servers/components/cache/policy.html index c5339553..d31df84d 100644 --- a/web/views/@default/servers/components/cache/policy.html +++ b/web/views/@default/servers/components/cache/policy.html @@ -58,11 +58,16 @@ 缓存硬盘最小空余空间 - + + 允许读取不完整的Partial Content + + Y + + + 启用MMAP - Y - N + Y diff --git a/web/views/@default/servers/components/cache/update.html b/web/views/@default/servers/components/cache/update.html index a4ae1d53..0be4b65a 100644 --- a/web/views/@default/servers/components/cache/update.html +++ b/web/views/@default/servers/components/cache/update.html @@ -91,6 +91,13 @@

使用sendfile提升发送缓存文件的效率。

+ + 允许读取不完整的Partial Content + + +

允许在有一部分内容缓存的情况下读取分区内容,剩余的部分将会自动回源读取。

+ + 启用MMAP diff --git a/web/views/@default/servers/components/cache/update.js b/web/views/@default/servers/components/cache/update.js index 7a8ee19f..5a6bb371 100644 --- a/web/views/@default/servers/components/cache/update.js +++ b/web/views/@default/servers/components/cache/update.js @@ -13,6 +13,7 @@ Tea.context(function () { let options = this.cachePolicy.options if (options != null && typeof options == "object" && typeof options["dir"] === "undefined") { options["enableMMAP"] = false + options["enableIncompletePartialContent"] = true options["dir"] = "/opt/cache" options["memoryPolicy"] = { capacity: {