Как переместить объект CalDAV в другую коллекцию? - PullRequest
0 голосов
/ 10 мая 2019

Я пытаюсь программно с помощью libcurl переместить некоторый объект ресурса CalDAV (т.е. событие) из одной коллекции календаря в другую.

Я предположил, что метод MOVE для моей проблемы.У меня есть экземпляр Nextcloud, поэтому я попробовал следующий запрос в терминах оболочки:

$ curl -v -X MOVE -u bergentroll:password \
-H 'Destination: http://orangepi/remote.php/caldav/bergentroll/aux/Nextcloud-wafrjmzdgc7qxdv75drtrm.ics' \
http://orangepi/remote.php/caldav/calendars/bergentroll/personal/Nextcloud-wafrjmzdgc7qxdv75drtrm.ics

Коллекция Aux и объект ics оба существуют, но я получил исключение:

<?xml version="1.0" encoding="utf-8"?>
<d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns">
  <s:exception>Sabre\DAV\Exception\Conflict</s:exception>
  <s:message>The destination node is not found</s:message>
</d:error>

Я попробовал пункт назначениябез протокола: // имя хоста, а также путь без имени файла, но каждый раз, когда я получаю одно и то же исключение.

Так подходит ли метод MOVE для этой цели и как достичь результата?

Я вижуследующая альтернатива MOVE: GET, DELETE, PUT;но это кажется уродливым и излишним.

...