É possível usar o protocolo HTTP para fazer upload de arquivos para um servidor e também curlfazer isso a partir da linha de comando.
Mas para que isso funcione, você precisa que o servidor HTTP suporte uploads de arquivos (nativamente ou por meio de um aplicativo em execução nesse servidor), para que esse recurso seja habilitado e configurado e normalmente você precisa de alguma forma de autenticação/autorização para evitar uploads inesperados ao seu servidor. Você também pode precisar lidar com permissões de arquivo e diretório para permitir que o servidor Web ou aplicativo Web grave no sistema de arquivos local quando receber um arquivo carregado.
Se tudo isso estiver em vigor, você terá duas maneiras de curlfazer upload de arquivos usando HTTP:
Método PUT:
Este é o "verbo" nativo para upload de arquivos. Uma vantagem é que o URL que você usa para o upload corresponde àquele em que o arquivo enviado deve estar disponível após o upload. Mas, como mencionado acima, você precisa que seu servidor suporte 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
Método POST:
Esta é uma maneira de invocar um aplicativo em execução no servidor web, que pode implementar uploads de arquivos... 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 arquivos em um servidor (há muitas soluções simples usando o protocolo CGI para fazer isso) do que configurar um servidor web para aceitar solicitações PUT.
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 dependeriam de qual aplicativo de upload de arquivo você decidir usar e tiver disponível. -FO objetivo do exemplo é ilustrar o uso do argumento do curl e o uso de @para incluir o conteúdo de um arquivo local ao usá-lo.
Consulte o manual do curl para obter mais detalhes, particularmente a seção "Upload" que descreve o método PUT. Ele também menciona o uso de POST como uma opção.
É possível usar o protocolo HTTP para fazer upload de arquivos para um servidor e também
curl
fazer isso a partir da linha de comando.Mas para que isso funcione, você precisa que o servidor HTTP suporte uploads de arquivos (nativamente ou por meio de um aplicativo em execução nesse servidor), para que esse recurso seja habilitado e configurado e normalmente você precisa de alguma forma de autenticação/autorização para evitar uploads inesperados ao seu servidor. Você também pode precisar lidar com permissões de arquivo e diretório para permitir que o servidor Web ou aplicativo Web grave no sistema de arquivos local quando receber um arquivo carregado.
Se tudo isso estiver em vigor, você terá duas maneiras de
curl
fazer upload de arquivos usando HTTP:Este é o "verbo" nativo para upload de arquivos. Uma vantagem é que o URL que você usa para o upload corresponde àquele em que o arquivo enviado deve estar disponível após o upload. Mas, como mencionado acima, você precisa que seu servidor suporte uploads de arquivos usando esse método para que isso funcione.
Se esta for uma opção, use a seguinte sintaxe:
Esta é uma maneira de invocar um aplicativo em execução no servidor web, que pode implementar uploads de arquivos... 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 arquivos em um servidor (há muitas soluções simples usando o protocolo CGI para fazer isso) do que configurar um servidor web para aceitar solicitações PUT.
Se esta for uma opção, use uma sintaxe como:
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 dependeriam de qual aplicativo de upload de arquivo você decidir usar e tiver disponível.
-F
O objetivo do exemplo é ilustrar o uso do argumento do curl e o uso de@
para incluir o conteúdo de um arquivo local ao usá-lo.Consulte o manual do curl para obter mais detalhes, particularmente a seção "Upload" que descreve o método PUT. Ele também menciona o uso de POST como uma opção.