utilitário de linha de comando para WebDAV carregamento
-
05-07-2019 - |
Pergunta
Eu preciso de um utilitário de linha de comando que pode fazer WebDAV upload (HTTP PUT).
Solução
cURL vai fazer isso por você.
curl -T filetoput.xml http://www.url.com/filetoput.xml
Outras dicas
O utilitário de linha de comando HTTP mais comumente usado parece ser cURL , que vai fazer PUT
com a sua < a href = "http://curl.haxx.se/docs/manpage.html#-T" rel = "nofollow noreferrer"> - T opção . Você precisaria entender um pouco do protocolo WebDAV para fazer mais do que carregar com ele, no entanto.
WinSCP (para Windows) suporta WebDAV (e webdavs).
WinSCP suporta operações de script / de linha de comando também.
roteiro WinSCP exemplo para fazer upload de um arquivo através de WebDAV:
open https://user@webdav.example.com/
put file.txt /path/
exit
Salvar o script para um arquivo (por exemplo script.txt
) e correr como:
winscp.com /script=script.txt
Você também pode colocar tudo em uma única linha:
winscp.com /command "open https://user@webdav.example.com/" "put file.txt /path/" "exit"
Comece com introdução ao script com WinSCP .
Você pode até ter WinSCP GUI gerar o arquivo de script para você .
(eu sou o autor de WinSCP)
esta visão geral contém uma lista detalhada sobre o servidor WebDAV e clientes.
Eu optar por cadáver ou, se as minhas necessidades eram muito específico, um script python usando o PyWebDAV biblioteca.
Outra opção é "Davix"
https://dmc.web.cern.ch/projects/davix/home
que se separou utils como Davix-mkdir Davix-put etc Você pode especificar creditions na URL como
davix-mkdir http://user:passw@example.com/dir_to_create
davix-put local_file http://user:passw@example.com/dir_to_create/remote_file_name
Use KIO no KDE:
kioclient cp file.txt 'webdavs://user@webdav.example.com:443/'
Se você precisar fazer upload de todo o diretório em vez de um arquivo de mais de WebDAV, você pode usar a seguinte abordagem.
Imagine que você tem a seguinte pasta local que você vai fazer upload de mais de WebDAV.
local_folder_to_upload
│ test.txt
│ test1.txt
│
└───nested_folder1
│ │ file1.txt
│ │ file2.txt
│ │
│ └───nested_folder2
│ │ file11.txt
│ │ file12.txt
1.Primeiro você precisa criar diretórios aninhados de sua pasta local (se os tiver) em um servidor. Desde WebDAV não suporta carregamento recursivo, você tem que fazer isso na etapa separada ( se você fosse usar ftp
- você acrescentaria bandeira --ftp-create-dirs
para fazer isso). Para criar essas pastas mais de WebDAV você precisa usar MKCOL método .
curl -X MKCOL 'http://your.server/uploads/nested_folder1' --user 'name:pwd'
curl -X MKCOL 'http://your.server/uploads/nested_folder1/nested_folder2' --user 'name:pwd'
Por favor, note que você não pode criá-los em uma solicitação de acordo com com a especificação .
Se uma solicitação para criar coleção / a / b / c / d / é feita, e / A / b / c / não existe, o pedido deve falhar.
2.Segundo você pode utilizar a saída de encontrar comando shell para enviá-lo para seu servidor usando curl
.
cd local_folder_to_upload && find . -exec curl -T {} 'http://your.server/uploads/{}' --user 'name:pwd' \;
código acima loop sobre todos os seus arquivos dentro de determinado diretório (usando find) e adicionar a saída (nome do arquivo com o caminho relativo) ao {}
espaço reservado na URL do seu servidor web. Por isso, faz várias solicitações (uma por cada arquivo), e uma vez que todas as pastas aninhadas foram criadas com antecedência -. Esses pedidos não devem falhar
A esperança é útil a alguém.
Telerik Fiddler tem uma guia "compor", onde você pode criar seu próprio pedido WebDAV personalizado. Por exemplo. PROPFIND e opções etc.