cURL: Comment afficher les informations de progression lors du téléchargement?
- Je utiliser la syntaxe suivante pour télécharger les fichiers:
curl --form upload=@localfilename --form press=OK [URL]
Comment afficher le progrès? Thx.
- curl.haxx.se/docs/manpage.html Voir la section sur la barre de progression. Je soupçonne que vous avez besoin de rediriger la sortie vers un fichier, mais ne suis pas positif.
Vous devez vous connecter pour publier un commentaire.
C'est ce que j'utilise dans un de mes scripts de construction:
La
-F
et-A
options ne seront probablement pas être d'intérêt pour vous, mais les pièces sont les suivantes:qui raconte
curl
pour afficher une barre de progression (au lieu de la valeur par défaut "de la barre de progression') lors de l'upload, et:qui ajoute la sortie de la commande vers un fichier de log et aussi de l'echo à
stdout
. Letest ${PIPESTATUS[0]} -eq 0
partie fait en sorte que le statut de sortie de cette ligne (qui est dans un script bash) est le même code de sortie de lacurl
commande retournée et pas le statut de sortie de latee
de commande (nécessaire cartee
est en fait la dernière commande exécutée dans cette ligne, pascurl
).De
man curl
:tee
commande est requise pour obtenir des informations sur la progression du téléchargement. si vous ne voulez pas utilisertee
alors utilisez simplementgrep -v '^uniqueStringNeverHappens$'
de commande. plus d'infos: stackoverflow.com/a/17178410/751932> /dev/null
time curl --progress-bar --verbose ...
qui empêche la barre de progression soit démontré. Le courant sans temps de travaux.Tous les autres réponse ici le problème qu'ils vous obligent à écrire la sortie originale de s'enroulent dans un (log) de fichier. Toutefois, cela peut ne pas être recherché dans tous les cas.
Le problème est que curl masque la barre de progression/mètre, lorsqu'une réponse du serveur est prévu, qui est ensuite écrit dans stdout.
Donc, fondamentalement, vous pouvez rediriger la sortie vers un fichier pour afficher la barre de nouveau. Cependant, nous ne voulons pas que, si
/dev/null
ettee
pouvez nous aider ici:Curl de sortie est transmis à
tee
qui écrit la sortie de la console (ce qui nous voulons voir la barre de progression et également la réponse du serveur) et dans un fichier (ce qui n'est pas nécessaire en nous, mais que nous utilisons/dev/null
ce n'est pas grave).Noter que le curl devs n'a naturellement pas masquer la barre de progression pour le plaisir. Dans ce cas là, vous ne pouvez pas toujours voir le serveur de résultat ou il ne peut être montré quelques secondes (comme la barre de progression s'affiche à nouveau par la suite), mais si vous ne vous souciez pas de cela, la solution est une belle.
--progress-bar
.curl --progress-bar ... | tee /dev/null
? Dans mon cas,curl --progress-bar ... | cat
semble fonctionner tout aussi bien.J'ai eu du mal à l'accepté de répondre à la commande de redirection et trouvé le
-o
option aura lieu la sortie de la réponse dans un fichier qui permet à la barre de progression de montrer.Juste une autre option pour obtenir le résultat souhaité.
NOTE: l'Accent sur cette ligne à partir de la page de man est important de comprendre la cause de pourquoi la barre de progression ne s'affiche pas quand il suffit de spécifier
--progress-bar
.