Como faço recursivamente copiar / baixar um diretório webdav inteiro?

8

Quando tento copiar uma pasta de um servidor webdav para um disco local usando o Nautilus, ele copia o que parece ser um arquivo de manifesto (xml com a listagem de diretórios, etc.). Com o cadáver, recebo um arquivo vazio.

Gostaria de poder recursivamente copiar uma árvore de diretórios inteira. Alguém sabe como posso fazer isso?

ps: Estou usando o Ubuntu 11.04 com o Nautilus 2.32.2.1 e o Cadaver 0.23.3

    
por drevicko 14.02.2012 / 07:26

4 respostas

3

Esta resposta resume as sugestões dadas nos comentários de @Ocaso e @Rinzwind.

Eu usei isso:

wget -r -nH -np --cut-dirs=1 --no-check-certificate -U Mozilla --user={uname} 
    --password={pwd} https://my-host/my-webdav-dir/my-dir-in-webdav

Não é perfeito (baixei um monte de 'index.html? C = M; O = D' e similares), mas de outra forma funcionou ok.

O "-r" é baixado recursivamente, seguindo os links.

O "-np" impede a ascensão aos diretórios pai (senão você faz o download de todo o site!).

O "-nH" impede a criação de um diretório chamado "my-host" (que eu não queria).

O "--cut-dirs = 1" previne a criação de um diretório chamado "my-webdav-dir".

O "--no-check-certificate" é porque estou usando um certificado autoassinado no servidor webdav (também estou forçando https).

O "-U Mozilla" configura o agente do usuário na solicitação http para "Mozilla" - meu servidor webdav não precisava disso, mas incluí-lo de qualquer maneira.

    
por drevicko 28.02.2012 / 11:42
3

Na verdade, com o Cadaver você pode cd para o diretório do qual deseja baixar arquivos e mget * .

    
por viktor denischik 08.09.2012 / 10:21
3

Você pode usar o dav2fs para montar o servidor webdav e, em seguida, acessá-lo como faria em um diretório local.

    
por Liam 09.08.2013 / 15:43
1

Como alternativa, você pode montá-lo como um caminho a ser acessado como parte de seu próprio sistema de arquivos.

sudo mount -t davfs https://your.remote/path /your/local/mount/point

Observação: /your/local/mount/point precisa ser um diretório existente real para que isso funcione.

Tanto quanto eu sei, você só precisa executar o seguinte para que o comando funcione: sudo apt-get install davfs2 (Se for necessária mais configuração peço desculpas, foi há muito tempo que eu fiz isso.)

(Eu adicionei isso como uma resposta porque eu sinto que a resposta de Liam não deu informações suficientes.)

    
por JasoonS 09.02.2017 / 16:42