Χρησιμοποιήστε συνέχιση μόνο όταν το download.part ανήκει στην ίδια αναπαράσταση αντικειμένου που θα ζητήσετε τώρα. Το όνομα αρχείου δεν αρκεί: η προέλευση μπορεί να έχει αλλάξει το περιεχόμενο από την πρώτη προσπάθεια.

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

Αντικαταστήστε και τα δύο τελικά σημεία με υπηρεσίες που επιτρέπεται να χρησιμοποιείτε. Για σύγκριση δημόσιου αρχείου όπου επιτρέπονται δημόσιοι proxy, επιλέξτε σημείο HTTP από τη λίστα HTTP proxy. Το -C - χρησιμοποιεί το μέγεθος του υπάρχοντος αρχείου ως σημείο συνέχισης. Εξετάστε την απόκριση προορισμού αντί να θεωρείτε κάθε σώμα που επιστρέφεται ως τα byte που λείπουν:

ΑπόκρισηΕρμηνεία
206 με Content-RangeΕλέγξτε ότι το επιστρεφόμενο εύρος είναι η αναμενόμενη συνέχεια.
200Ο διακομιστής μπορεί να αγνόησε το Range και να έστειλε ολόκληρη την αναπαράσταση.
416Το ζητούμενο εύρος δεν μπορεί να ικανοποιηθεί· μην προσθέτετε τη σελίδα σφάλματος στο αρχείο.

Οι επικυρωτές και το If-Range μπορούν να βοηθήσουν στην αποφυγή ένωσης διαφορετικών εκδόσεων ενός μεταβαλλόμενου πόρου. Ακολουθήστε τους κανόνες αναπαράστασης της εφαρμογής πριν εμπιστευτείτε το ολοκληρωμένο αρχείο.

Στο Squid 6.13 το range_offset_limit καθορίζει πότε ανακτά ένα αντικείμενο από την αρχή για προσωρινή αποθήκευση, όχι αν ο πελάτης μπορεί να ζητήσει εύρος:

range_offset_limit 0

Ένα μηδενικό όριο αποφεύγει πρόσθετη ανάκτηση του αρχικού τμήματος μόνο για γέμισμα της κρυφής μνήμης. Η προώθηση χρήσιμου εύρους χωρίς αποθήκευση του αντικειμένου μπορεί ακόμη να επιτύχει. Στο συνηθισμένο HTTPS CONNECT, η ανταλλαγή Range είναι μέσα στο TLS προορισμού· διαβάστε αυτή την απόκριση αντί να θεωρείτε την ορατή πολιτική κρυφής μνήμης αντικειμένων του Squid έλεγχο του εσωτερικού αιτήματος.

Σχετικά άρθρα