Existe-t-il un module Perl disponible pour la limitation du téléchargement? Je voudrais télécharger un certain fichier mais limiter le taux de téléchargement à un nombre spécifique de Ko/sec.Comment puis-je limiter un téléchargement dans un programme Perl?
2
A
Répondre
6
Ressemble WWW :: Curl et l'option CURLOPT_MAX_RECV_SPEED_LARGE est ce que vous voulez:
#!/usr/bin/env perl
use strict;
use warnings;
use feature ':5.10';
use WWW::Curl::Easy;
# Setting the options
my $curl = WWW::Curl::Easy->new;
$curl->setopt(CURLOPT_HEADER,1);
$curl->setopt(CURLOPT_URL, 'http://www.google.com');
$curl->setopt(CURLOPT_MAX_RECV_SPEED_LARGE, 1);
my $response_body;
open my $fh, ">", \$response_body or die; # presumably this can be a real file as well.
$curl->setopt(CURLOPT_WRITEDATA,$fh);
my $ret = $curl->perform;
die 'Error: '. $curl->strerror($ret) if $ret;
my $response_code = $curl->getinfo(CURLINFO_HTTP_CODE);
say "Received response: $response_body";
Dans cet exemple, nous télécharger Google à un octet par seconde. Très lent.
3
Une technique sans s'y limiter, Perl et non limité à un protocole particulier consiste à utiliser trickle:
filet est un conformateur portable de la bande passante de l'espace utilisateur léger. Il peut fonctionner en mode collaboratif (avec ruissellement) ou en mode autonome.
Voir aussi How do you throttle the bandwidth of a socket connection in C?
Ce serait bien d'emballer cette technique comme un module Perl (par exemple que IO :: Handle sous-classe), mais je ne suis pas au courant d'un.
Questions connexes
- 1. Comment puis-je limiter par programme l'accès à un Webservice?
- 2. Comment utiliser cURL ou Wget dans un programme Perl?
- 3. ASP.NET Limiter le nombre téléchargement
- 4. Comment limiter la taille du téléchargement?
- 5. Comment écrire un programme C++ de téléchargement MultiPart
- 6. Comment exécuter un script Perl depuis un script Perl?
- 7. Comment limiter le téléchargement des types de fichiers spécifiés
- 8. Comment limiter JFileChooser à un répertoire?
- 9. Comment limiter un ticket d'enregistrement TFS à un chemin personnalisé?
- 10. Comment stocker un tableau 2d dans un hachage en Perl?
- 11. Comment inclure un module Perl dans un répertoire différent?
- 12. Comment charger un fichier dans un hachage Perl?
- 13. Comment limiter l'accès à un dossier particulier dans asp .net
- 14. Comment puis-je convertir un script de téléchargement de fichiers PHP en Perl?
- 15. Comment puis-je obtenir une communication cross-thread dans un programme Perl GTK?
- 16. Comment intégrer un interpréteur Perl dans mon programme C# en utilisant Mono sous Linux?
- 17. Comment réexécuter un sous-programme sans redémarrer le script dans le débogueur de Perl?
- 18. Comment puis-je lire le paramètre URL dans un programme CGI Perl?
- 19. Comment programmer un programme
- 20. Comment importer des paramètres d'environnement dans mon programme Perl?
- 21. Requête MySQL: LIMITER un JOIN
- 22. Comment distribuer un programme d'installation qui contient un programme d'amorçage
- 23. Comment supprimer un contact programme dans Android
- 24. Soumettre par programme un formulaire
- 25. comment créer un compteur dans un programme dr Java
- 26. Comment appeler un script Perl dans une application C#?
- 27. Comment exécuter un programme externe à partir de Java?
- 28. Téléchargement vers un serveur distant
- 29. Comment tester un téléchargement de fichier dans des rails?
- 30. Comment implémenter un téléchargement de fichier dans asp.net
http serait bien – Geo