You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用curl列出Nextcloud共享文件夹中的文件?

解决Nextcloud公共共享文件夹文件列表获取问题

已知你可以通过以下命令下载共享文件夹中的指定文件:

curl -X GET https://nextcloud.whatever.com/index.php/s/9asdFa9k6264j/download?path=myfile.csv

但尝试PROPFIND命令返回405错误,原因是公共共享的WebDAV访问路径和私有用户的路径不同,以下是两种可行的解决方法:

方法1:使用公共WebDAV入口(PROPFIND)

公共共享的WebDAV入口是public.php/webdav/,而非你之前用的remote.php/webdav/,且需要将共享token作为用户名(密码留空,若共享有密码则填对应密码)。执行以下命令:

curl -X PROPFIND "https://nextcloud.whatever.com/public.php/webdav/" \
  -u "9asdFa9k6264j:" \
  -H "Content-Type: application/xml" \
  -d '<?xml version="1.0"?>
<d:propfind xmlns:d="DAV:" xmlns:oc="http://owncloud.org/ns">
  <d:prop>
    <d:getlastmodified/>
    <d:getetag/>
    <d:resourcetype/>
    <d:getcontenttype/>
    <d:getcontentlength/>
  </d:prop>
</d:propfind>'

如果共享设置了密码,将-u "9asdFa9k6264j:"改为-u "9asdFa9k6264j:共享密码"即可。

方法2:使用Nextcloud共享API(更易解析)

直接调用共享文件夹的API接口获取JSON格式的文件列表,无需复杂的XML请求:

curl -X GET "https://nextcloud.whatever.com/index.php/s/9asdFa9k6264j/api/v1/files/"

若共享有密码,添加认证头:

curl -X GET "https://nextcloud.whatever.com/index.php/s/9asdFa9k6264j/api/v1/files/" \
  -u ":共享密码"

额外验证

确认管理员赋予的权限包含共享文件夹的读取权限,且共享未被配置为仅允许下载特定文件。

内容的提问来源于stack exchange,提问作者konse

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 10:07:33