aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--weed/filer/filechunks.go5
1 files changed, 4 insertions, 1 deletions
diff --git a/weed/filer/filechunks.go b/weed/filer/filechunks.go
index 7252169d8..43261a970 100644
--- a/weed/filer/filechunks.go
+++ b/weed/filer/filechunks.go
@@ -178,7 +178,10 @@ func (cv *ChunkView) Clone() IntervalValue {
}
func (cv *ChunkView) IsFullChunk() bool {
- return cv.ViewSize == cv.ChunkSize
+ // IsFullChunk returns true if the view covers the entire chunk from the beginning.
+ // This prevents bandwidth amplification when range requests happen to align
+ // with chunk boundaries but don't actually want the full chunk.
+ return cv.OffsetInChunk == 0 && cv.ViewSize == cv.ChunkSize
}
func ViewFromChunks(ctx context.Context, lookupFileIdFn wdclient.LookupFileIdFunctionType, chunks []*filer_pb.FileChunk, offset int64, size int64) (chunkViews *IntervalList[*ChunkView]) {