Armazenar um arquivo no servidor com o comando curl usando o método post como scp? [duplicado]

1

Assim:

cat tmp.txt | curl --post domain.com/file-to-store

Eu quero armazenar o conteúdo de tmp.txt na minha máquina para o servidor usando apenas o terminal. É possível?

    
por Akhil J 26.09.2018 / 09:59

1 resposta

2

É possível usar o protocolo HTTP para fazer upload de arquivos para um servidor e também usar curl para fazer isso a partir da linha de comando.

Mas para que isso funcione, você precisa do servidor HTTP para suportar uploads de arquivos (seja nativamente ou por meio de um aplicativo em execução nesse servidor), para que esse recurso seja ativado e configurado e normalmente você precisa de alguma forma de autenticação / autorização impedir o envio inesperado para o seu servidor. Você também pode precisar lidar com permissões de arquivos e diretórios para permitir que o servidor da Web ou o aplicativo da Web grave no sistema de arquivos local quando receber um arquivo carregado.

Se tudo estiver pronto, você tem duas maneiras de usar curl para fazer upload de arquivos usando HTTP:

  1. método PUT:

Este é o "verbo" nativo para o upload de arquivos. Uma vantagem é que o URL usado para o upload corresponde àquele em que o arquivo enviado deve estar disponível depois do upload. Mas, como mencionado acima, você precisa do seu servidor para suportar uploads de arquivos usando esse método para que isso funcione.

Se esta for uma opção, use a seguinte sintaxe:

cat tmp.txt | curl -T - domain.com/file-to-store
  1. método POST:

Esta é uma maneira de invocar um aplicativo em execução no servidor da Web, que pode implementar uploads de arquivos ... Nesse caso, você precisa chamar o URL para o próprio aplicativo, portanto, normalmente é necessário codificar o destino esperado URL ou nome do arquivo como um argumento separado ("campo") passado na solicitação POST.

Uma vantagem dessa abordagem é que é normalmente mais fácil instalar e configurar um aplicativo de upload de arquivo em um servidor (existem muitas soluções simples usando o protocolo CGI) do que configurar um servidor web para aceitar pedidos PUT.

Se esta for uma opção, use uma sintaxe como:

curl -F [email protected] -F url=/file-to-store domain.com/fileupload.cgi

Observe que o exemplo acima não é literal e é apenas uma ilustração de um aplicativo de upload de arquivo hipotético ... Os detalhes reais dependerão de qual aplicativo de upload de arquivo você decidir usar e disponibilizar. O objetivo do exemplo é ilustrar o uso do argumento -F do curl e o uso de @ para incluir o conteúdo de um arquivo local durante sua utilização.

Consulte o manual de curvas para obter mais detalhes, especialmente a seção "Upload", que descreve o método PUT. Também menciona o uso do POST como uma opção.

    
por 26.09.2018 / 11:50

Tags