enrola prendedores em download no cygwin, mas não no os x

0

Estou tentando baixar uma cópia de um banco de dados postgresql do Amazon S3 no cygwin. Mas produz zero ao longo do quadro, produzindo um arquivo inútil. Este é o meu comando curl:

 curl 'heroku.bat pgbackups:url' -o latest.dump --verbose

que produz:      * ESTADO: INIT = > CONECTE o identificador 0x60002de60; linha 1011 (conexão # -5000)      * Hostname não foi encontrado no cache DNS      * Tentando 54.231.1.232 ...      * Adicionando alça: conn: 0x600069f80      * Adicionando handle: send: 0      * Adicionando alça: recv: 0      * Curl_addHandleToPipeline: duração: 1      * 0x60002de60 está na cabeça do tubo de envio!      * - Conn 0 (0x600069f80) send_pipe: 1, recv_pipe: 0      * ESTADO: CONNECT = > Identificador WAITCONNECT 0x60002de60; linha 1058 (conexão # 0)      % Total% Recebido% Xferd Velocidade Média Tempo Tempo Tempo Atual                                      Velocidade total transferida do upload do Dload      0 0 0 0 0 0 0 0 -: -: - -: -: - -: -: - 0 * Conectado a porta s3.amazonaws.com (54.231.1.232) 443 (# 0)      * definir com sucesso locais de verificação de certificados:      * Arquivo CA: /usr/ssl/certs/ca-bundle.crt      Caminho: nenhum      * SSLv3, aperto de mão de TLS, cliente olá (1):      } [dados não mostrados]      * STATE: WAITCONNECT = > Identificador PROTOCONNECT 0x60002de60; linha 1171 (conexão # 0)      * SSLv3, aperto de mão de TLS, olá do servidor (2):      { [dados não mostrados]      * SSLv3, aperto de mão de TLS, CERT (11):      { [dados não mostrados]      * SSLv3, handshake TLS, servidor finalizado (14):      { [dados não mostrados]      * SSLv3, handshake TLS, troca de chaves do cliente (16):      } [dados não mostrados]      * SSLv3, TLS altera a cifra, Cliente hello (1):      } [dados não mostrados]      * SSLv3, aperto de mão TLS, terminado (20):      } [dados não mostrados]      * SSLv3, TLS altera a cifra, Cliente hello (1):      { [dados não mostrados]      * SSLv3, aperto de mão TLS, terminado (20):      { [dados não mostrados]      * Conexão SSL usando AES128-SHA      * Certificado do servidor:        Redigido      * Certificado SSL verificar ok.      * ESTADO: PROTOCONNECT = > DO identificador 0x60002de60; linha 1190 (conexão # 0)

GET /hkpgbackups/[email protected]/b007.dump?AWSA redacted User-Agent: curl/7.34.0 Host: s3.amazonaws.com Accept: /

 * STATE: DO => DO_DONE handle 0x60002de60; line 1263 (connection #0)
 * STATE: DO_DONE => WAITPERFORM handle 0x60002de60; line 1384 (connection #0)
 * STATE: WAITPERFORM => PERFORM handle 0x60002de60; line 1395 (connection #0)
 * HTTP 1.1 or later with persistent connection, pipelining supported
 < HTTP/1.1 400 Bad Request
 < Transfer-Encoding: chunked
 < Date: Wed, 02 Jul 2014 21:03:39 GMT
 < Connection: close
 * Server AmazonS3 is not blacklisted
 < Server: AmazonS3
 { [data not shown]
 * STATE: PERFORM => DONE handle 0x60002de60; line 1565 (connection #0)
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
 * Closing connection 0

A execução desse comando no terminal OS X da mesma sub-rede produz basicamente a mesma saída, exceto que recebo um 200 para a solicitação http / 1.1.

Então, por que eu compraria um 200 para o Mac, mas 400 para o cygwin no Windows? Eu tentei eliminar outras variáveis potenciais, mas cygwin nesta máquina não está recebendo um 200. Eu posso te dizer que o url redigido no cygwin coincide com o url na saída do comando heroku e o mesmo no mac tanto quanto eu posso veja, com exceção da chave de acesso da AWS. Não vejo por que eles seriam diferentes?

Por que isso seria diferente?

Para referência, este é o meu recurso .

    
por sam452 02.07.2014 / 23:18

1 resposta

0

Isso deve ter funcionado, mas a única maneira de executar é pular a avaliação do comando heroku e apenas copiou a saída do URL e SOMENTE se eu coloquei o URL entre aspas simples.

curl -o latest.dump ' link '

O motivo pelo qual ele funciona no OS X é porque a saída é muito longa e não é afetada. Mas ele fica no cygwin porque estou usando o comando heroku.bat para obter a saída. Isso impõe restrições do Windows - isto é, adiciona um retorno de carro, etc. à linha muito longa que quebra a URL. A outra pista é que o curl retorna um erro 400 que indica um URL munged. A correção é canalizar a saída para o programa dos2unix e curl responde como deveria.

curl -o latest.dump heroku.bat pgbackups:url | dos2unix e felicidade reina.

    
por 17.09.2014 / 21:52

Tags