Как загрузить все мои данные Caldav и Carddav с помощью одного wget/curl?

StackOverflow https://stackoverflow.com//questions/23030628

  •  21-12-2019
  •  | 
  •  

Вопрос

До сих пор я использовал 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-файлы, представляющие элементы календаря.Аналогичная команда работает для моей адресной книги.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top