【发布时间】:2016-06-24 17:54:02
【问题描述】:
我正在尝试使用 ruby 2.0 与 Owncloud 服务器 (Sabre/webDAV) 通信。我有一个 Curl 示例,用于获取需要在 HTTP 标头中传递信息的文件列表。如何从 Ruby 传递此标头信息? net_dav docs 似乎表明这是一种可用的方法,但 ruby 错误似乎表明并非如此:
编辑:修复语法错误headers = 到headers()
undefined method headers= for #<Net::DAV:0x00000001276d10> (NoMethodError)
卷曲命令:
# curl -s -X PROPFIND -H "Depth: 100" -H "Content-Type: application/json" -u ${username}:${passwd} https://myserver.net/remote.php/webdav | egrep href
红宝石代码:
# get list of files
url = "https://myserver.net"
path = "/remote.php/webdav/"
dav = Net::DAV.new(url, :curl => false)
dav.verify_server = true
dav.credentials(user, pass)
dav.headers ("Depth: 100") # << something wrong ?
# get list of files
path = "/remote.php/webdav/"
options = ''
props = dav.propfind(path, options)
【问题讨论】:
-
深度:100 不是一回事。只能是
0、1或infinity -
你确定吗?从 0 到 3 改变深度似乎给了我目录结构的逻辑级别。
inifinity确实是我想要的。谢谢。 -
如果您与之交互的服务器支持
Depth: 3,那么该服务器也实现了非标准功能。参考:我已经完成了 很多 的 webdav 工作,您也可以在规范中找到它;)