1
0
mirror of https://github.com/rclone/rclone.git synced 2025-12-06 00:03:32 +00:00

fs: fix FixRangeOption to make fetch to end Range options absolute

Before this change FixRangeOption was leaving `Range: bytes=21-`
alone, thus not fulfilling its contract of making Range requests
absolute.

As it happens this form isn't supported by Cloudflare R2.

After this change the request is normalised to `Range: bytes=21-25`.

See: #5642
This commit is contained in:
Nick Craig-Wood
2022-05-06 12:06:20 +01:00
parent e5974ac4b0
commit 1e66d052fd
2 changed files with 4 additions and 3 deletions

View File

@@ -158,7 +158,8 @@ func FixRangeOption(options []OpenOption, size int64) {
x = &RangeOption{Start: size - x.End, End: -1}
options[i] = x
}
if x.End > size {
// If end is too big or undefined, fetch to the end
if x.End > size || x.End < 0 {
x = &RangeOption{Start: x.Start, End: size - 1}
options[i] = x
}