mirror of
https://github.com/TeaOSLab/EdgeNode.git
synced 2026-01-03 22:06:37 +08:00
优化Partial Content缓存
This commit is contained in:
@@ -628,7 +628,14 @@ func (this *HTTPRequest) tryPartialReader(storage caches.StorageInterface, key s
|
||||
}()
|
||||
|
||||
// 检查范围
|
||||
const maxFirstSpan = 16 << 20 // TODO 可以在缓存策略中设置此值
|
||||
for index, r := range ranges {
|
||||
// 没有指定结束字节时,自动指定一个
|
||||
if r.Start() >= 0 && r.End() == -1 {
|
||||
if partialReader.MaxLength() > r.Start()+maxFirstSpan {
|
||||
r[1] = r.Start() + maxFirstSpan
|
||||
}
|
||||
}
|
||||
r1, ok := r.Convert(partialReader.MaxLength())
|
||||
if !ok {
|
||||
return nil, nil
|
||||
|
||||
@@ -326,7 +326,7 @@ func (this *HTTPWriter) PrepareCache(resp *http.Response, size int64) {
|
||||
// 写入Header
|
||||
var headerBuf = utils.SharedBufferPool.Get()
|
||||
for k, v := range this.Header() {
|
||||
if k == "Set-Cookie" {
|
||||
if k == "Set-Cookie" || (this.isPartial && k == "Content-Range") {
|
||||
continue
|
||||
}
|
||||
for _, v1 := range v {
|
||||
@@ -649,7 +649,7 @@ func (this *HTTPWriter) PrepareCompression(resp *http.Response, size int64) {
|
||||
// 写入Header
|
||||
var headerBuffer = utils.SharedBufferPool.Get()
|
||||
for k, v := range this.Header() {
|
||||
if k == "Set-Cookie" {
|
||||
if k == "Set-Cookie" || (this.isPartial && k == "Content-Range") {
|
||||
continue
|
||||
}
|
||||
for _, v1 := range v {
|
||||
@@ -1193,7 +1193,7 @@ func (this *HTTPWriter) finishRequest() {
|
||||
// 计算Header长度
|
||||
func (this *HTTPWriter) calculateHeaderLength() (result int) {
|
||||
for k, v := range this.Header() {
|
||||
if k == "Set-Cookie" {
|
||||
if k == "Set-Cookie" || (this.isPartial && k == "Content-Range") {
|
||||
continue
|
||||
}
|
||||
for _, v1 := range v {
|
||||
|
||||
Reference in New Issue
Block a user