Como transferir todos os meus caldav e carddav de dados com um wget / curl?
Pergunta
Até agora, eu usei Google Calender
e fazer o meu pessoal de backup diário wget
do public ".ics"
O Link.
Agora quero mudar para um novo Serviço, que tem apenas caldav
de acesso.
Há uma possibilidade de fazer download de todos os meus caldav
e carddav
de dados com um wget
/ curl
?
Este dados baixados, devem dar-me a possibilidade de fazer o backup de dados perdidos.
Obrigado antecipadamente.
editar
Eu criei um simples arquivo php que funciona na forma como hmh explicou.Não sei se essa forma funciona de fornecedores diferentes, mas para mailbox.org, ele funciona bem.
Você pode encontrá-lo aqui https://gist.github.com/ahemwe/a2eaae4d56ac85969cf2.
Solução
Por favor, seja mais específico, que é o novo serviço/servidor que você está usando?
Este não é especificamente o CalDAV, mas a maioria DAV servidores ainda fornecem uma maneira de pegar todos os eventos/todos usando uma única OBTER.Geralmente por segmentação relevante coleção com um GET, por exemplo,como um destes:
curl -X GET -u login -H "Accept: text/calendar" https://myserver/joe/home/
curl -X GET -u login -H "Accept: text/calendar" https://myserver/joe/home.ics
Em CalDAV/CardDAV você pode pegar todo o conteúdo de uma coleção usando um PROPFIND:
curl -X PROPFIND -u login -H "Content-Type: text/xml" -H "Depth: 1" \
--data "<propfind xmlns='DAV:'><prop><calendar-data xmlns='urn:ietf:params:xml:ns:caldav'/></prop></propfind>" \
https://myserver/joe/home/
Substitua-calendário de dados com
<address-data xmlns="urn:ietf:params:xml:ns:carddav"/>
para CardDAV.
Isto dará a você uma entidade XML que tem o iCal/vCard conteúdo incorporado.Para restaurá-lo, seria necessário analisar o XML e extrair os dados (não é difícil).
Nota:Apesar de simples padrão, alguns servidores de rejeitar ou simplesmente omitir o conteúdo (lame!arquivo de relatórios de bugs ;-).
Outras dicas
Especificamente para as pessoas que usam Baïkal (>= 0.3.3;outros Sabre/dav-soluções de base será semelhante), você pode ir diretamente para
https://<Baïkal location>/html/dav.php/
em um navegador, e ter uma interface html que permite que você baixe arquivos ics, e por isso também permite que você a encontrar os links para aqueles para uso com o curl/wget.
Eu tentei o aceite uma resposta que não funciona para mim.Com o meu calendário CalDAV provedor posso, no entanto, recuperar todos os arquivos de calendário usando
wget -c -r -l 1 -nc --user='[myuser]' --password='[mypassword]' --accept=ics '[url]'
onde [myuser]
e [mypassword]
o que você espera e [url]
é a mesma URL que você digitar em seu regular CalDAV software (conforme especificado pelo seu provedor).
O comando cria um diretório contendo todos os ICS-arquivos que representam os itens de calendário.Um comando semelhante funciona para o meu livro de endereços.