我试图使用libcurl以编程方式将一些CalDAV资源对象(即事件)从一个日历集合移动到另一个日历集合。
我认为,MOVE方法适用于我的问题。我有一个Nextcloud实例,所以我尝试了关于shell的下一个请求:
$ 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
辅助集合和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;但它看起来丑陋且多余。