Asciinema: "рдЯреВрдЯреА рд╣реБрдИ рдкрд╛рдЗрдк" рдХреЗ рд╕рд╛рде рдЕрдкрд▓реЛрдб рд╡рд┐рдлрд▓

рдХреЛ рдирд┐рд░реНрдорд┐рдд 28 рдЬрдире░ 2019  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: asciinema/asciinema

$ 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

рдпрд╣рд╛рдБ tmp-folder рдореЗрдВ рдРрдк рд╣реИ

$ 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

рд╕рднреА 7 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЙрдЪрд┐рдд рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдкрд▓реЛрдб рдлрд╝рд╛рдЗрд▓реЛрдВ рдкрд░ 5M рд╕реАрдорд╛ рд╣реИред #91 . рджреЗрдЦреЗрдВ

рд╣рд╛рдБ, рдпрд╣ рдЖрдХрд╛рд░ рд╕реАрдорд╛ рдореБрджреНрджрд╛ рд╣реИред

asciinema рдореЗрдВ рд╕реНрдерд┐рддрд┐ 413 рдХреЗ рд▓рд┐рдП рддреНрд░реБрдЯрд┐ рд╣реИрдВрдбрд▓рд░ рд╣реИ (рдЬреЛ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╡реЗрдм рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд╛рдЗрдерди рдХреЗ urllib рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдХрд╛рд░рдг рдЗрд╕реЗ рдХрднреА рднреА рдареАрдХ рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдк рдпрд╣рд╛рдБ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ: https://github.com/kennethreitz/requests/issues/2422#issuecomment -184012765

рдЖрдЬ рдЙрд╕реА рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ред рдпрджрд┐ рдЕрдкрд▓реЛрдб рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓ 5M рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рддреЛ рдЪреЗрддрд╛рд╡рдиреА рдХреНрд▓рд╛рдЗрдВрдЯ рдкрдХреНрд╖ рдХреЛ рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд╕реНрдЯреЙрдкрдЧреИрдк рдЙрдкрд╛рдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдк рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реИрдВ?

рдореИрдВ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕рдореЗрдВ 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) $ 

рд╡рд╣ рдХреЗрд╡рд▓ 600K рд╣реИред рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдЦреЗрд▓рддрд╛ рд╣реИред

рдпрд╣рд╛рдВ рдкреБрди: рдкреЗрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

$ 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

рдЫреЛрдЯреА рдлрд╛рдЗрд▓реЛрдВ рдкрд░ рднреА рдпрд╣реА рд╣реЛрддрд╛ рд╣реИред рдореИрдВрдиреЗ curl рд╕рд╛рде рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд▓реЗрдХрд┐рди рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд┐рдпрд╛:

$ 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

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ asciinema рдХреЗ HTTP API рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдорд╕реНрдпрд╛ рд╣реИ; asciinema рдлреЙрд░реНрдо pip рдХреЛ рдПрдХ рдирдП venv рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп рднреА рдореБрдЭреЗ рдЗрд╕рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛; рд╕реНрдерд╛рдиреАрдп рдкрд╛рдпрдерди рд╕рдВрд╕реНрдХрд░рдг 3.7.5 рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ рдбреЗрдмрд┐рдпрди 11/рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдкреИрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)

рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЙрдЪрд┐рдд рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдкрд▓реЛрдб рдлрд╝рд╛рдЗрд▓реЛрдВ рдкрд░ 5M рд╕реАрдорд╛ рд╣реИ ред #91 . рджреЗрдЦреЗрдВ

рдпрд╣ рдПрдХ рдПрдлрдПрдХреНрдпреВ рдЖрдЗрдЯрдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЬреИрд╕реЗ рд╣реА рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ "рдЯреВрдЯреА рд╣реБрдИ рдкрд╛рдЗрдк" рджреЛ рдмрд╛рд░ рджреЛрд╣рд░рд╛рдИ рдЧрдИ, рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рдерд╛ рдХрд┐ рдореЗрд░реА 6.3M рдХрд╛рд╕реНрдЯ рдЕрдкрд▓реЛрдб рд╕реАрдорд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛ рдЧрдИ рд╣реИред

рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдзрд╛рдЧреЗ рдХреЛ рдЦреЛрдЬрдиреЗ рдореЗрдВ... рдЙрд╣реНрд╣реНрд╣... 24 рдорд┐рдирдЯ рд▓рдЧреЗред рд▓рдЧрднрдЧ 15 рдЬрд┐рдирдореЗрдВ рд╕реЗ рдореИрдВ discobot рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд╕рд╛рде рдЦрд┐рд▓рд╡рд╛рдбрд╝ рдХрд░ рд░рд╣рд╛ рдерд╛, рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрд╕рд╕реЗ рдореБрдЭреЗ рдПрдлрдПрдХреНрдпреВ рдкреНрд░рд╡рдЪрди рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдкреНрд░рд╢реНрди рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓реЗрдЧреА (рдРрд╕рд╛ рдирд╣реАрдВ рд╣реБрдЖ)ред

рдореБрдЭреЗ рдпрд╣ рддреНрд░реБрдЯрд┐ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдорд┐рд▓ рд░рд╣реА рд╣реИ:

``` Sontek@hulk :/mnt/c/Users/sontek/code/snowmachine$ рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВ
рдЕрд╕рд┐рдирд┐рдорд╛: рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рд╕рдорд╛рдкреНрдд
рд╕рд┐рдиреЗрдорд╛: рдкреНрд░реЗрд╕asciinema.org рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП
asciinema: рдЕрдкрд▓реЛрдб рд╡рд┐рдлрд▓:
asciinema: рдмрд╛рдж рдореЗрдВ рдЪрд▓рд╛рдХрд░ рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ: asciinema рдЕрдкрд▓реЛрдб /tmp/tmpe_sntawl-ascii.cast
Sontek@hulk :/mnt/c/Users/sontek/code/snowmachine$ du -sh /tmp/tmpe_sntawl-ascii.cast
184рдХреЗ /tmp/tmpe_sntawl-ascii.cast
Sontek@hulk :/mnt/c/рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛/рд╕реЛрдирдЯреЗрдХ/рдХреЛрдб/рд╕реНрдиреЛрдорд╛рдЪрд┐рди$

Tried uploading it later too:

Sontek@hulk :/mnt/c/рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛/рд╕реЛрдирдЯреЗрдХ/рдХреЛрдб/рд╕реНрдиреЛрдорд╛рдЪрд┐рди$ asciinema рдЕрдкрд▓реЛрдб /tmp/tmpe_sntawl-ascii.cast
asciinema: рдЕрдкрд▓реЛрдб рд╡рд┐рдлрд▓:
asciinema: рдмрд╛рдж рдореЗрдВ рдЪрд▓рд╛рдХрд░ рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ: asciinema рдЕрдкрд▓реЛрдб /tmp/tmpe_sntawl-ascii.cast
```

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕