$ asciinema upload /var/folders/v2/g27ngtds20zg60cy_f2jb_l80000gn/T/tmpub1dsng9-ascii.cast
asciinema: upload failed: <urlopen error [Errno 32] Broken pipe>
asciinema: retry later by running: asciinema upload /var/folders/v2/g27ngtds20zg60cy_f2jb_l80000gn/T/tmpub1dsng9-ascii.cast
Voici l'application dans le dossier tmp
$ exa -l /var/folders/v2/g27ngtds20zg60cy_f2jb_l80000gn/T/tmpub1dsng9-ascii.cast
.rw------- 5.8M user 28 Jan 16:33 /var/folders/v2/g27ngtds20zg60cy_f2jb_l80000gn/T/tmpub1dsng9-ascii.cast
Vous ne savez pas pourquoi vous n'obtenez pas un message d'erreur approprié, mais il y a une limite de 5 M pour les fichiers de téléchargement. Voir #91
Oui, c'est un problème de limite de taille.
asciinema a un gestionnaire d'erreurs pour le statut 413 (qui est renvoyé par le serveur Web dans ce cas), mais il semble qu'il ne soit jamais correctement géré en raison du fonctionnement de l'urllib de Python. Vous pouvez en savoir plus sur le problème ici : https://github.com/kennethreitz/requests/issues/2422#issuecomment -184012765
J'ai rencontré le même problème aujourd'hui. Que pensez-vous d'une mesure provisoire consistant à émettre un avertissement côté client si le fichier à télécharger dépasse 5 M ?
Je le rencontre régulièrement bien en dessous de la limite de 5M.
[schwarzgerat](2) $ ls -l /tmp/user/1000/tmpaxpadd2n-ascii.cast
-rw------- 1 dank dank 592498 2020-01-05 08:57 /tmp/user/1000/tmpaxpadd2n-ascii.cast
[schwarzgerat](0) $ asciinema upload /tmp/user/1000/tmpaxpadd2n-ascii.cast
asciinema: upload failed: <urlopen error [Errno 32] Broken pipe>
asciinema: retry later by running: asciinema upload /tmp/user/1000/tmpaxpadd2n-ascii.cast
[schwarzgerat](1) $
Celui-là ne fait que 600K. Joue parfaitement localement.
Peut reproduire ici :
$ asciinema upload display_sweep.cast
asciinema: upload failed: <urlopen error [Errno 32] Broken pipe>
asciinema: retry later by running: asciinema upload display_sweep.cast
$ ll -h display_sweep.cast
-rw-r--r-- 1 nicoo nicoo 2.3M Jan 14 21:29 display_sweep.cast
La même chose se produit également sur les fichiers plus petits. J'ai essayé de reproduire avec curl
mais cela a bien fonctionné :
$ curl --http1.1 -v -u $USER:$(cat ~/.config/asciinema/install-id) https://asciinema.org/api/asciicasts -F asciicast=@display_sweep.cast
* Trying 109.107.38.78:443...
* TCP_NODELAY set
* Connected to asciinema.org (109.107.38.78) port 443 (#0)
* ALPN, offering http/1.1
* successfully set certificate verify locations:
* CAfile: none
CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384
* ALPN, server accepted to use http/1.1
* Server certificate:
* subject: CN=asciinema.org
* start date: Jan 16 08:09:20 2020 GMT
* expire date: Apr 15 08:09:20 2020 GMT
* subjectAltName: host "asciinema.org" matched cert's "asciinema.org"
* issuer: C=US; O=Let's Encrypt; CN=Let's Encrypt Authority X3
* SSL certificate verify ok.
* Server auth using Basic with user 'nicoo'
> POST /api/asciicasts HTTP/1.1
> Host: asciinema.org
> Authorization: Basic XXXXSECRETVALUEHERE
> User-Agent: curl/7.67.0
> Accept: */*
> Content-Length: 2332762
> Content-Type: multipart/form-data; boundary=------------------------8506bb168e19a8c6
> Expect: 100-continue
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 100 Continue
* We are completely uploaded and fine
* Mark bundle as not supporting multiuse
< HTTP/1.1 201 Created
< Cache-Control: max-age=0, private, must-revalidate
< Content-Length: 78
< Content-Type: text/plain; charset=utf-8
< Date: Fri, 17 Jan 2020 16:47:43 GMT
< Location: https://asciinema.org/a/ucRJ70xKSlhN1QlmMW0BdSUBf
< Server: Caddy
< Server: nginx
< Strict-Transport-Security: max-age=15768000
< X-Request-Id: 2nlbkv35ad6doecmo07jcdm2
<
View the recording at:
https://asciinema.org/a/ucRJ70xKSlhN1QlmMW0BdSUBf
* Connection #0 to host asciinema.org left intact
Cela semble être un problème spécifique au client API HTTP de asciinema
; Je l'ai rencontré même lors de l'installation de asciinema
form pip
dans un nouveau venv
; la version locale de python est 3.7.5 (telle que conditionnée dans Debian 11/testing)
Vous ne savez pas pourquoi vous n'obtenez pas un message d'erreur approprié, mais il y a une limite de 5 M pour les fichiers de téléchargement. Voir #91
Cela devrait être un élément de la FAQ.
Dès que j'ai vu ce "tuyau cassé" se répéter deux fois, j'ai suspecté que mon casting de 6,3 millions dépassait la limite de téléchargement.
Mais en fait, trouver ce fil a pris... euhhh... 24 minutes. Une quinzaine d'entre eux je m'embêtais avec la certification discobot
, en espérant que cela me permettrait de poster la question dans la section discours de la FAQ (ce n'est pas le cas).
J'obtiens cette erreur avec une petite :
``` sontek@hulk :/mnt/c/Users/sontek/code/snowmachine$ exit
asciinema : enregistrement terminé
asciinema: presse
asciinema : échec du téléchargement :
asciinema : réessayez plus tard en exécutant : asciinema upload /tmp/tmpe_sntawl-ascii.cast
sontek@hulk :/mnt/c/Users/sontek/code/snowmachine$ du -sh /tmp/tmpe_sntawl-ascii.cast
184K /tmp/tmpe_sntawl-ascii.cast
sontek@hulk :/mnt/c/Users/sontek/code/snowmachine$
Tried uploading it later too:
sontek@hulk :/mnt/c/Users/sontek/code/snowmachine$ asciinema upload /tmp/tmpe_sntawl-ascii.cast
asciinema : échec du téléchargement :
asciinema : réessayez plus tard en exécutant : asciinema upload /tmp/tmpe_sntawl-ascii.cast
```