Ruby on rails RubyonRails-尝试下载文件时发生FTP错误

Ruby on rails RubyonRails-尝试下载文件时发生FTP错误,ruby-on-rails,ruby,csv,ftp,Ruby On Rails,Ruby,Csv,Ftp,我正在使用以下代码从FTP服务器下载少量.csv文件: require 'net/ftp' ftp = Net::FTP.new ftp.connect('myftpserver.com', '21') ftp.login('mylogin', 'mypassword') ftp.passive = true files = ftp.list puts files ftp.gettextfile('cutandsold-us.csv', './lib/cutandsold-us

我正在使用以下代码从FTP服务器下载少量.csv文件:

require 'net/ftp'
ftp = Net::FTP.new
ftp.connect('myftpserver.com', '21')
ftp.login('mylogin', 'mypassword')
ftp.passive = true

  files = ftp.list

  puts files

  ftp.gettextfile('cutandsold-us.csv', './lib/cutandsold-us.csv')
  puts "#{Time.now} > Downloaded Cut and Sold report (US)."

  ftp.gettextfile('cutandsold-canada.csv', './lib/cutandsold-canada.csv')
  puts "#{Time.now} > Downloaded Cut and Sold report (CAN)."

  ftp.gettextfile('stylemaster.csv', './lib/stylemaster.csv')
  puts "#{Time.now} > Downloaded Style Master."

  ftp.gettextfile('acct-bookings-large.csv', './lib/acct-bookings-large.csv')
  puts "#{Time.now} > Downloaded Account Bookings report."

  ftp.gettextfile('acctbookings-majors.csv', './lib/acctbookings-majors.csv')
  puts "#{Time.now} > Downloaded Major Account Bookings report."

  ftp.gettextfile('customerlist.csv', './lib/customerlist.csv')
  puts "#{Time.now} > Downloaded Customer list."

ftp.close
除了customerlist.csv之外,所有文件都可以正常下载,尽管该文件位于FTP服务器上,我可以使用FileZilla下载,并且在出现puts文件时,它会在控制台中显示正确的文件名

当到达下载customerlist.csv的行时,返回以下错误:

/Users/username/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/net/ftp.rb:341:in'voidresp':这里测量150 0.085秒,每秒1.11兆字节net::FTPReplyError


我怀疑这是文件本身的问题,而不是我的代码的问题,因为其他文件下载时没有问题,但我不确定,因为文件似乎是完整的,我可以用另一个FTP客户端下载它。

如果您尝试改为getbinaryfile怎么办?就在Casper上!这立刻解决了问题。我所做的只是将ftp.gettextfile与ftp.getbinaryfile进行了切换,结果成功了。我怀疑特定的.csv文件没有正确编码,因为它是由一些非常古老的学校软件生成的。