From 60fb184d15f297f8881f54ca8fe08163f8be09d7 Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Tue, 7 May 2024 20:04:39 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BC=93=E5=AD=98=E7=AD=96=E7=95=A5=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E2=80=9C=E5=85=81=E8=AE=B8=E8=AF=BB=E5=8F=96=E4=B8=8D?= =?UTF-8?q?=E5=AE=8C=E6=95=B4=E7=9A=84Partial=20Content=E2=80=9D=E9=80=89?= =?UTF-8?q?=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/cache/cacheutils/utils.go | 3 ++- .../servers/components/cache/createPopup.go | 20 ++++++++++--------- .../servers/components/cache/update.go | 20 ++++++++++++++----- .../servers/components/cache/createPopup.html | 7 +++++++ .../servers/components/cache/policy.html | 11 +++++++--- .../servers/components/cache/update.html | 7 +++++++ .../servers/components/cache/update.js | 1 + 7 files changed, 51 insertions(+), 18 deletions(-) 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: {