Använd återupptagning bara när download.part tillhör samma objektrepresentation som du ska begära nu. Ett filnamn räcker inte för att fastställa det: ursprunget kan ha ändrat innehållet sedan första försöket.

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

Byt ut båda slutpunkterna mot tjänster som du har rätt att använda. För en jämförelse av en offentlig fil där offentliga proxyer är tillåtna, välj en HTTP-slutpunkt från listan över HTTP-proxyer. -C - använder den befintliga filens storlek som fortsättningspunkt. Granska målets svar i stället för att betrakta vilken svarskropp som helst som de saknade byten:

SvarTolkning
206 med Content-RangeKontrollera att det returnerade intervallet är den förväntade fortsättningen.
200Servern kan ha ignorerat Range och skickat hela representationen.
416Det begärda intervallet kan inte uppfyllas; lägg inte till felsidan i filen.

Validatorer och If-Range kan hjälpa till att undvika att sammanfoga olika versioner av en föränderlig resurs. Följ programmets representationsregler innan du litar på den färdiga filen.

I Squid 6.13 styr range_offset_limit när ett objekt hämtas från början för cachning, inte om en klient får begära ett intervall:

range_offset_limit 0

En nollgräns undviker extra hämtning av början enbart för att fylla cachen. Att vidarebefordra ett användbart intervall utan att cacha objektet kan ändå lyckas. Vid vanlig HTTPS-CONNECT ligger Range-utbytet inuti målets TLS; läs det svaret i stället för att behandla Squids synliga objektcachepolicy som kontroll över den inre begäran.

Relaterade artiklar