diff --git a/internal/nodes/http_request_cache.go b/internal/nodes/http_request_cache.go index bc07ad2..7583682 100644 --- a/internal/nodes/http_request_cache.go +++ b/internal/nodes/http_request_cache.go @@ -236,6 +236,11 @@ func (this *HTTPRequest) doCacheRead(useStale bool) (shouldStop bool) { if reader == nil { reader, err = storage.OpenReader(key, useStale, false) if err != nil && this.cacheRef.AllowPartialContent { + // 尝试读取分片的缓存内容 + if len(rangeHeader) == 0 { + // 默认读取开头 + rangeHeader = "bytes=0-" + } pReader, ranges := this.tryPartialReader(storage, key, useStale, rangeHeader) if pReader != nil { isPartialCache = true diff --git a/internal/nodes/http_writer.go b/internal/nodes/http_writer.go index 1d0b72d..c91a9a3 100644 --- a/internal/nodes/http_writer.go +++ b/internal/nodes/http_writer.go @@ -312,9 +312,10 @@ func (this *HTTPWriter) PrepareCache(resp *http.Response, size int64) { if !caches.CanIgnoreErr(err) { remotelogs.Error("HTTP_WRITER", "write cache failed: "+err.Error()) + this.Header().Set("X-Cache", "BYPASS, write cache failed") + } else { + this.Header().Set("X-Cache", "BYPASS, "+err.Error()) } - - this.Header().Set("X-Cache", "BYPASS, too many requests") return } this.cacheWriter = cacheWriter