作为记录,经过一番挖掘后,我发现https://doc.owncloud.com/server/latest/developer_manual/webdav_api/tags.html也可以为 nextcloud 工作。简而言之:
获取给定文件的文件 ID:
curl --silent -u user:password -X PROPFIND -H "Content-Type: text/xml" \
--data-binary "@file-propfind.xml" https://nextcloud/remote.php/webdav/file' | xmllint --format -
在file-propfind.xml
您的目录中包含类似的内容
<?xml version="1.0" encoding="utf-8" ?>
<a:propfind xmlns:a="DAV:" xmlns:oc="http://owncloud.org/ns">
<a:prop>
<oc:fileid/>
</a:prop>
</a:propfind>
然后使用获取此文件的标签列表
curl --silent -u user:password -X PROPFIND -H "Content-Type: text/xml" \
--data-binary "@tags-propfind.xml" https://nextcloud/remote.php/dav/systemtags-relations/files/<FILEID>" | xmllint --format -
其中 FILEID 是您oc:fileid
在上一个响应中获得的数字以及tags-propfind.xml
包含类似内容的文件
<?xml version="1.0" encoding="utf-8" ?>
<a:propfind xmlns:a="DAV:" xmlns:oc="http://owncloud.org/ns">
<a:prop>
<oc:display-name/>
<oc:user-visible/>
<oc:user-assignable/>
<oc:id/>
</a:prop>
</a:propfind>
这是用于标签读取的,但 API 文档也解释了如何以相同的方式添加标签。