Estou usando curl no Windows para baixar arquivos grandes. No entanto, a conexão de rede às vezes é redefinida e, portanto, quero reiniciar o download, mas não tenho certeza de quais parâmetros devo usar.
eu tentei
curl.exe --connect-timeout 240 --keepalive-time 240 --verbose --retry 50 --retry-max-time 0 --compressed -o "c:\largefile.bin" -C - https:// example.org/largefile.bin
mas o --retry
não funciona.
Quando a conexão é redefinida por algum motivo, --verbose
mostra o seguinte:
* ...
* Closing connection 0
* schannel: shutting down SSL/TLS connection with example.org port 443
* Send failure: Connection was reset
* schannel: failed to send close msg: Failed sending data to the peer (bytes written: -1)
curl: (56) Send failure: Connection was reset
Como faço para que o curl tente novamente no curl: (56) Send failure: Connection was reset
?
curl
por padrão, não tenta novamente todos os erros, mesmo com--retry
.Portanto, use
--retry-all-errors
(desde curl 7.71.0) ou usewget -c
, onde isso funciona sem opções extras.Como
--retry-all-errors
não era suportado por nossa versãocurl
em um contêiner baseado em linux (mensagem de erro:curl: option --retry-all-errors: is unknown
), acabamos usando umwhile
loop: