0

我正在尝试将文件放在带有 WEB_DAV 的站点上。(红宝石)

当我按照示例进行操作时,我得到一个 nil 异常

#### GEMS
require 'rubygems'
begin
  gem "net_dav"
rescue LoadError
  system("gem install net_dav")
  Gem.clear_paths
end
require 'net/dav'


uri = URI('https://staging.web.mysite');
user = "dave"
pasw = "correcthorsebatterystaple"

dav = Net::DAV.new(uri, :curl => false)
dav.verify_server = false
dav.credentials(user, pasw)

cargo = ("testing.txt")
File.open(cargo, "rb") { |stream|
  dav.put(urI.path +'/'+ cargo, stream, File.size(cargo))
}

当我运行它时,我得到

`digest_auth': can't convert nil into String (TypeError)

这与我的 nav.rb 文件中的第 197 行有关。

 request_digest << ':' << params['nonce']

所以我想知道的是我没有添加哪一步?是否有正确使用此宝石的合理示例?做一些有效的事情会很甜蜜:)

附带问题: 这是用于执行 web_DAV 的正确 gem 吗?它似乎是一个旧的无人维护的宝石,也许有更多的东西用来完成任务?

4

1 回答 1

0

尝试使用符号而不是字符串来引用哈希,即

request_digest << ':' << params[:nonce]

在一个简单的测试中

baz = "baz" 参数 = {:foo => "bar"} baz << ':' << params['foo']

导致与您得到的错误相同。

于 2012-12-04T01:53:27.257 回答