2014-11-03 24 views
0

我试图从FTP服务器上下载一个压缩文件并将其保存在临时目录中下载并保存文件:无法从FTP服务器上使用Ruby

agent = Net::FTP.new 
agent.connect(host, 21) 
agent.login(user, pass) 
agent.chdir(path) 
agent.passive = true 
file = agent.getbinaryfile(source_file, @file_path) 
file.save!(@file_path) 

但是,它不保存文件因为它是一个字符串?

NoMethodError: undefined method `save!' for #<String:0x0000000cbc0398> 

是否有另一种方式从FTP服务器下载zip文件,或者我错过了什么?

回答

0

调用getbinaryfile就足够了,因为Net::FTP#getbinaryfile会将内容保存在指定的路径中。

.... 
agent.getbinaryfile(source_file, @file_path) 

抛出异常,因为该方法返回一个字符串,并String没有save!方法。 (Net::FTP既没有save!方法也没有)

+0

感谢您的快速回复。你知道目标文件夹是否必须存在,否则会自动创建目标文件夹? – Severin 2014-11-03 13:31:42

+0

@Severin,'getbinaryfile'将简单地使用'open'。这将要求目标目录存在。 – falsetru 2014-11-03 13:32:45