首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过WebDAV脚本标记NextCloud文件

通过WebDAV脚本标记NextCloud文件
EN

Stack Overflow用户
提问于 2017-03-02 16:40:22
回答 2查看 3.4K关注 0票数 2

我使用NextCloud 11存储我的个人文件,并使用文档中的简单curl脚本将文件上传到我的NextCloud驱动器:

curl -u user:pw -T test.pdf "http://localhost/nextcloud/remote.php/dav/files/user/test/test.pdf"

此外,我想直接在上传的文件中添加一些标签。然而,在官方文档中,它们只是展示了如何通过WebDAV接口上传、删除和移动文件。

有谁能提示我如何远程标记文件吗?

我已经在官方的NextCloud社区论坛上发布了同样的问题,但我还没有收到回复。如果我收到回复,我会把它贴在这里。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-02 22:49:12

发布https://yournextcloud.com/index.php/api/v1/files/path/to/file

有效负载为JSON:

代码语言:javascript
复制
{"tags": ["tag1", "tag2"]}

您将需要使用基本身份验证进行身份验证

Edit:该API只能从Nextcloud内部调用,因为需要CSRF令牌。

票数 1
EN

Stack Overflow用户

发布于 2018-08-31 21:33:14

根据记录,经过一些挖掘,我找到了https://doc.owncloud.com/server/latest/developer_manual/webdav_api/tags.html,它也可以为nextcloud做这项工作。简而言之:

获取给定文件的文件id:

代码语言:javascript
复制
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,其中包含如下内容

代码语言:javascript
复制
<?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>

然后使用以下命令获取此文件的标记列表

代码语言:javascript
复制
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是一个包含以下内容的文件

代码语言:javascript
复制
<?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文档也解释了如何以同样的方式添加标签。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42550487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档