Partial Content每次写入缓存时都检查Content-MD5是否一致

This commit is contained in:
刘祥超
2024-05-07 20:15:47 +08:00
parent 02dc42d8e0
commit ffe3f248a9
2 changed files with 17 additions and 0 deletions

View File

@@ -355,6 +355,19 @@ func (this *HTTPWriter) PrepareCache(resp *http.Response, size int64) {
}
this.cacheWriter = cacheWriter
// 对比Content-MD5
{
partialWriter, ok := cacheWriter.(*caches.PartialFileWriter)
if ok {
if partialWriter.Ranges().Version >= 2 && partialWriter.Ranges().ContentMD5 != this.Header().Get("Content-MD5") {
_ = this.cacheWriter.Discard()
this.cacheWriter = nil
return
}
}
}
// 判断是否新创建的缓存文件
if this.isPartial {
this.partialFileIsNew = cacheWriter.(*caches.PartialFileWriter).IsNew()
}