2011-02-15 51 views
2

我有rails应用程序,它将文件发送到FTP。我想整个文件夹移动到FTP,但它给这个错误:想要移动整个文件夹使用Net :: Ftp on rails

/home/Anup/code/DashGo-2.2.0/vendor/rails/railties/lib/commands/runner.rb:47: /usr/lib/ruby/1.8/net/ftp.rb:471:in `gets': Is a directory - /home/Anup/code/DashGo-2.2.0/private/temp_file (Errno::EISDIR) 
    from /usr/lib/ruby/1.8/net/ftp.rb:471:in `storlines' 
    from /usr/lib/ruby/1.8/net/ftp.rb:470:in `loop' 
    from /usr/lib/ruby/1.8/net/ftp.rb:470:in `storlines' 
    from /usr/lib/ruby/1.8/monitor.rb:242:in `synchronize' 
    from /usr/lib/ruby/1.8/net/ftp.rb:467:in `storlines' 

我使用Net::FTP轨宝石。

是否有任何方法可用在红宝石给出文件夹名称的所有文件列表?

回答

2

FTP(通常 - 不只是红宝石宝石)从未擅长传输目录。事实上,我不确定它是否支持它。

请看看SCP。这就是我最终用来在几台计算机之间传输目录的方法。在ruby中,甚至有一个Net::SCP类应该很好地对应于你当前使用的Net :: FTP类。

希望有帮助!

+0

+1了中肯的意见。 – Johnsyweb 2011-04-11 11:29:35

1

另外我认为Net :: Scp是更好的解决方案,但有时不可能使用它。在这种情况下,我使用FTPSync ......但很sloooooooooow(如FTP)很慢,在大目录

ftpconn = FtpSync.new(<host>, <user>, <pass>) 
ftpconn.verbose = true 
ftpconn.push_dir(@local_path,@remote_path) 
相关问题