Tęskite tik kai download.part priklauso tai pačiai objekto reprezentacijai, kurios dabar prašysite. Vien failo pavadinimas to nepatvirtina: pradinis serveris nuo pirmo bandymo galėjo pakeisti turinį.

curl --proxy http://proxy.example:3128 --noproxy '' --connect-timeout 5 --max-time 60 -C - --output download.part http://files.example/test.bin

Abu galinius taškus pakeiskite paslaugomis, kurias turite teisę naudoti. Viešo failo palyginimui, kai vieši tarpiniai serveriai leidžiami, pasirinkite HTTP tašką iš HTTP tarpinių serverių sąrašo. -C - naudoja esamo failo dydį kaip tęsimo vietą. Patikrinkite paskirties atsakymą, o ne laikykite bet kokį gautą turinį trūkstamais baitais:

AtsakymasReikšmė
206 su Content-RangePatikrinkite, ar grąžintas diapazonas yra lauktas tęsinys.
200Serveris galėjo nepaisyti Range ir atsiųsti visą reprezentaciją.
416Prašomo diapazono negalima pateikti; nepridėkite klaidos puslapio prie failo.

Tikrinimo priemonės ir If-Range gali padėti išvengti kintančio ištekliaus versijų sujungimo. Laikykitės programos reprezentacijos taisyklių prieš pasitikėdami baigtu failu.

Squid 6.13 range_offset_limit valdo, kada objektas gaunamas nuo pradžios podėliui, o ne ar klientas gali paprašyti diapazono:

range_offset_limit 0

Nulinė riba neleidžia papildomai gauti pradžios vien podėliui užpildyti. Naudingo diapazono persiuntimas neįrašant objekto į podėlį vis tiek gali būti sėkmingas. Įprasto HTTPS CONNECT atveju Range mainai vyksta paskirties TLS viduje; skaitykite tą atsakymą, o ne laikykite matomą Squid objektų podėlio politiką vidinės užklausos valdymu.

Susiję straipsniai