Как загрузить все мои данные Caldav и Carddav с помощью одного wget/curl?
Вопрос
До сих пор я использовал Google Calender
и делаю мою личную резервную копию ежедневно wget
принадлежащий public ".ics"
Связь.
Теперь я хочу переключиться на новый Сервис, у которого есть только caldav
доступ.
Есть ли возможность скачать все мои caldav
и carddav
данные с одного wget
/ curl
?
Эти загруженные данные должны дать мне возможность создать резервную копию потерянных данных.
Заранее спасибо.
редактировать
Я создал очень простой php-файл, который работает так, как объяснил хм.Не знаю, работает ли этот способ для разных провайдеров, но для mailbox.org он работает хорошо.
Вы можете найти это здесь https://gist.github.com/ahemwe/a2eaae4d56ac85969cf2.
Решение
Уточните, пожалуйста, какой новый сервис/сервер вы используете?
Это не конкретно CalDAV, но большинство серверов DAV по-прежнему предоставляют возможность захвата всех событий/задач с помощью одного GET.Обычно путем нацеливания на соответствующую коллекцию с помощью GET, например.как любой из них:
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
В CalDAV/CardDAV вы можете получить все содержимое коллекции, используя 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/
Замените данные календаря на
<address-data xmlns="urn:ietf:params:xml:ns:carddav"/>
для CardDAV.
Это даст вам объект XML, в который встроено содержимое iCal/vCard.Чтобы восстановить его, вам нужно будет проанализировать XML и извлечь данные (несложно).
Примечание:Хотя это простой стандарт, некоторые серверы отвергают это или просто опускают контент (отстой!отправлять отчеты об ошибках ;-).
Другие советы
Специально для людей, использующих Байкал (>= 0,3,3;другие решения на базе Sabre/dav будут аналогичны), вы можете перейти непосредственно к
https://<Baïkal location>/html/dav.php/
в браузере и получите html-интерфейс, который позволит вам загружать файлы ics, а также находить правильные ссылки для использования с curl/wget.
Я попробовал принятый ответ, который у меня не сработал.Однако с помощью моего поставщика календарей CalDAV я могу получить все файлы календаря, используя
wget -c -r -l 1 -nc --user='[myuser]' --password='[mypassword]' --accept=ics '[url]'
где [myuser]
и [mypassword]
это то, что вы ожидаете и [url]
— это тот же URL-адрес, который вы вводите в обычном программном обеспечении CalDAV (как указано вашим провайдером).
Команда создает каталог, содержащий все ICS-файлы, представляющие элементы календаря.Аналогичная команда работает для моей адресной книги.