mirror of
				https://github.com/TeaOSLab/EdgeNode.git
				synced 2025-11-04 07:40:56 +08:00 
			
		
		
		
	如果缓存条件支持206 Partial Content,则第一次加载时自动尝试从分片缓存中读取内容
This commit is contained in:
		@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user