NextCloud 通过 WebDAV 脚本标记文件
NextCloud file tagging through WebDAV script
我正在使用 NextCloud 11 存储我的个人文件,我使用文档中的简单 curl 脚本将文件上传到我的 NextCloud 驱动器:
curl -u user:pw -T test.pdf "http://localhost/nextcloud/remote.php/dav/files/user/test/test.pdf"
另外,我想直接给上传的文件加上一些标签。然而,在官方文档中,它们只是展示了如何通过 WebDAV 接口上传、删除和移动文件。
有人能告诉我如何远程标记文件吗?
我已经 post 在 NextCloud 官方社区论坛中提出了同样的问题,但我还没有收到回复。如果我收到回复,我会 post 在这里。
POST https://yournextcloud.com/index.php/api/v1/files/path/to/file
有效载荷是JSON:
{"tags": ["tag1", "tag2"]}
您需要使用基本身份验证来验证自己
编辑:API 只能从 Nextcloud 内部调用,因为需要 CSRF 令牌。
郑重声明,经过一番挖掘,我发现 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 文档也解释了如何以相同的方式添加标签。
我正在使用 NextCloud 11 存储我的个人文件,我使用文档中的简单 curl 脚本将文件上传到我的 NextCloud 驱动器:
curl -u user:pw -T test.pdf "http://localhost/nextcloud/remote.php/dav/files/user/test/test.pdf"
另外,我想直接给上传的文件加上一些标签。然而,在官方文档中,它们只是展示了如何通过 WebDAV 接口上传、删除和移动文件。
有人能告诉我如何远程标记文件吗?
我已经 post 在 NextCloud 官方社区论坛中提出了同样的问题,但我还没有收到回复。如果我收到回复,我会 post 在这里。
POST https://yournextcloud.com/index.php/api/v1/files/path/to/file
有效载荷是JSON:
{"tags": ["tag1", "tag2"]}
您需要使用基本身份验证来验证自己
编辑:API 只能从 Nextcloud 内部调用,因为需要 CSRF 令牌。
郑重声明,经过一番挖掘,我发现 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 文档也解释了如何以相同的方式添加标签。