Comment créer plusieurs instances HTTPDownloader avec un téléchargement partiel asynchrone? et est-ce qu'il assemble le fichier automatiquement après que tout le téléchargement est fait?Comment créer un téléchargement partiel dans twisted?
1
A
Répondre
2
Vous devez utiliser Range-tête HTTP:
Range. Demander seulement une partie d'une entité. octets sont numérotés de 0 Plage: octets = 500-999
Ie. Si vous voulez télécharger le fichier 1000 en 4 parties, vous commence 4 téléchargements:
- 0-2499
- 2500-4999
- 5000-7499
- 7500-9999
Et puis simplement joindre les données des réponses.
Pour vérifier la taille du fichier, vous pouvez utiliser la méthode HEAD:
HEAD demande la réponse identique à celui qui correspondrait à une requête GET, mais sans corps la réponse . Ceci est utile pour récupérer méta-informations écrites dans la réponse en-têtes, sans avoir à transporter l'ensemble du contenu.
J'ai regardé la classe HTTPDownloader mais je ne vois qu'une méthode gotHeader. Est-ce la même chose? Aussi, pouvez-vous me donner un exemple de code de comment demander pour la tête en tordu? – Marconi
Je ne suis pas un programmeur tordu, mais quelque chose comme: getPage (url, headers = {'range': 'bytes = 500-999'}) devrait faire le travail. Aussi, vous pouvez utiliser: getPage (url, méthode = « HEAD ») mais je ne sais pas ce qui va être le résultat (encore une fois je ne suis pas programmeur tordu). –
Je vois. Merci pour l'info quand même. – Marconi