Skip to content

Commit 6d44745

Browse files
committed
缓存策略增加“允许读取不完整的Partial Content”选项
1 parent 12b9840 commit 6d44745

File tree

7 files changed

+51
-18
lines changed

7 files changed

+51
-18
lines changed

internal/web/actions/default/servers/components/cache/cacheutils/utils.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,12 @@ func FindCachePolicy(parent *actionutils.ParentAction, cachePolicyId int64) (*se
2929
if len(resp.HttpCachePolicyJSON) == 0 {
3030
return nil, errors.New("cache policy not found")
3131
}
32-
config := &serverconfigs.HTTPCachePolicy{}
32+
var config = &serverconfigs.HTTPCachePolicy{}
3333
err = json.Unmarshal(resp.HttpCachePolicyJSON, config)
3434
if err != nil {
3535
return nil, err
3636
}
37+
3738
return config, nil
3839
}
3940

internal/web/actions/default/servers/components/cache/createPopup.go

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,12 @@ func (this *CreatePopupAction) RunPost(params struct {
3737
FileEnableSendfile bool
3838
FileMinFreeSizeJSON []byte
3939

40-
CapacityJSON []byte
41-
MaxSizeJSON []byte
42-
FetchTimeoutJSON []byte
43-
SyncCompressionCache bool
44-
EnableMMAP bool
40+
CapacityJSON []byte
41+
MaxSizeJSON []byte
42+
FetchTimeoutJSON []byte
43+
SyncCompressionCache bool
44+
EnableMMAP bool
45+
EnableIncompletePartialContent bool
4546

4647
Description string
4748
IsOn bool
@@ -95,10 +96,11 @@ func (this *CreatePopupAction) RunPost(params struct {
9596
MemoryPolicy: &serverconfigs.HTTPCachePolicy{
9697
Capacity: memoryCapacity,
9798
},
98-
OpenFileCache: openFileCacheConfig,
99-
EnableSendfile: params.FileEnableSendfile,
100-
MinFreeSize: minFreeSize,
101-
EnableMMAP: params.EnableMMAP,
99+
OpenFileCache: openFileCacheConfig,
100+
EnableSendfile: params.FileEnableSendfile,
101+
MinFreeSize: minFreeSize,
102+
EnableMMAP: params.EnableMMAP,
103+
EnableIncompletePartialContent: params.EnableIncompletePartialContent,
102104
}
103105
case serverconfigs.CachePolicyStorageMemory:
104106
options = &serverconfigs.HTTPMemoryCacheStorage{}

internal/web/actions/default/servers/components/cache/update.go

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,14 @@ func (this *UpdateAction) RunGet(params struct {
5959
cachePolicy.Options["enableMMAP"] = false
6060
}
6161
}
62+
63+
// fix enableIncompletePartialContent
64+
{
65+
_, ok := cachePolicy.Options["enableIncompletePartialContent"]
66+
if !ok {
67+
cachePolicy.Options["enableIncompletePartialContent"] = true
68+
}
69+
}
6270
}
6371

6472
this.Data["cachePolicy"] = cachePolicy
@@ -87,7 +95,8 @@ func (this *UpdateAction) RunPost(params struct {
8795
SyncCompressionCache bool
8896
FetchTimeoutJSON []byte
8997

90-
EnableMMAP bool
98+
EnableMMAP bool
99+
EnableIncompletePartialContent bool
91100

92101
Description string
93102
IsOn bool
@@ -146,10 +155,11 @@ func (this *UpdateAction) RunPost(params struct {
146155
MemoryPolicy: &serverconfigs.HTTPCachePolicy{
147156
Capacity: memoryCapacity,
148157
},
149-
OpenFileCache: openFileCacheConfig,
150-
EnableSendfile: params.FileEnableSendfile,
151-
MinFreeSize: minFreeSize,
152-
EnableMMAP: params.EnableMMAP,
158+
OpenFileCache: openFileCacheConfig,
159+
EnableSendfile: params.FileEnableSendfile,
160+
MinFreeSize: minFreeSize,
161+
EnableMMAP: params.EnableMMAP,
162+
EnableIncompletePartialContent: params.EnableIncompletePartialContent,
153163
}
154164
case serverconfigs.CachePolicyStorageMemory:
155165
options = &serverconfigs.HTTPMemoryCacheStorage{}

web/views/@default/servers/components/cache/createPopup.html

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,13 @@ <h3>创建缓存策略</h3>
8484
<p class="comment"><pro-warning-label></pro-warning-label><plus-label></plus-label>使用sendfile提升发送缓存文件的效率。</p>
8585
</td>
8686
</tr>
87+
<tr>
88+
<td class="color-border">允许读取不完整的Partial Content</td>
89+
<td>
90+
<checkbox name="enableIncompletePartialContent" checked="checked"></checkbox>
91+
<p class="comment">允许在有一部分内容缓存的情况下读取分区内容,剩余的部分将会自动回源读取。</p>
92+
</td>
93+
</tr>
8794
<tr v-show="moreOptionsVisible && policyType == 'file'">
8895
<td class="color-border">启用MMAP</td>
8996
<td>

web/views/@default/servers/components/cache/policy.html

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,16 @@
5858
<td class="color-border">缓存硬盘最小空余空间</td>
5959
<td><size-capacity-view :v-value="cachePolicy.options.minFreeSize"></size-capacity-view></td>
6060
</tr>
61-
<tr v-if="cachePolicy.options != null">
61+
<tr v-if="cachePolicy.options.enableIncompletePartialContent">
62+
<td class="color-border">允许读取不完整的Partial Content</td>
63+
<td>
64+
<span class="green">Y</span>
65+
</td>
66+
</tr>
67+
<tr v-if="cachePolicy.options.enableMMAP">
6268
<td class="color-border">启用MMAP</td>
6369
<td>
64-
<span class="green" v-if="cachePolicy.options.enableMMAP || cachePolicy.options.enableMMAP == null">Y</span>
65-
<span class="disabled" v-else>N</span>
70+
<span>Y</span>
6671
</td>
6772
</tr>
6873
</tbody>

web/views/@default/servers/components/cache/update.html

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,13 @@
9191
<p class="comment"><pro-warning-label></pro-warning-label><plus-label></plus-label>使用sendfile提升发送缓存文件的效率。</p>
9292
</td>
9393
</tr>
94+
<tr>
95+
<td class="color-border">允许读取不完整的Partial Content</td>
96+
<td>
97+
<checkbox name="enableIncompletePartialContent" v-model="cachePolicy.options.enableIncompletePartialContent"></checkbox>
98+
<p class="comment">允许在有一部分内容缓存的情况下读取分区内容,剩余的部分将会自动回源读取。</p>
99+
</td>
100+
</tr>
94101
<tr>
95102
<td class="color-border">启用MMAP</td>
96103
<td>

web/views/@default/servers/components/cache/update.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ Tea.context(function () {
1313
let options = this.cachePolicy.options
1414
if (options != null && typeof options == "object" && typeof options["dir"] === "undefined") {
1515
options["enableMMAP"] = false
16+
options["enableIncompletePartialContent"] = true
1617
options["dir"] = "/opt/cache"
1718
options["memoryPolicy"] = {
1819
capacity: {

0 commit comments

Comments
 (0)