Chef :: remote_file无法从FTP下载文件

时间:2016-02-17 12:23:23

标签: ruby ftp chef

我正在开发一个从FTP服务器下载一些文件的方法。我成功地验证了FTP服务器并获取文件列表。但当我的厨师被执行下载文件时,我收到了错误。

这是代码

fileList.each do |file|
  remote_file "C:\\" + file do
    source URI::encode("ftp://user:password@server/folder/" + file)
    action :create_if_missing
  end
end

这是错误的日志

PS C:\chef-repo> chef-apply .\cookbooks\visireview-sqlserver-config\recipes\ftp_restore_db.rb
[2016-02-17T17:14:20+05:00] WARN: ftp://user:password@server/folder/file.bak was an invalid URI. Trying to escape invalid characters
[2016-02-17T17:14:20+05:00] FATAL: Stacktrace dumped to C:/chef/cache/chef-stacktrace.out
[2016-02-17T17:14:20+05:00] FATAL: Chef::Exceptions::InvalidRemoteFileURI: "ftp://user:password@server/folder/file.bak" is not a valid `source` parameter for remote_file. `source` must be an absolute URI or an array of URIs.

请省下以前的一些时间,帮助我摆脱这个问题。

谢谢

1 个答案:

答案 0 :(得分:0)

我认为你取代了太多的真实内容。用户名,密码或主机名可能会导致URI解析出现问题。

> URI.parse("ftp://user:password@server/folder/file.bak").absolute?
true

使用你实际拥有的任何值来工作,它应该没问题。

相关问题