0

我正在尝试在 Ruby 1.8、Rails 2.3 环境中通过 FTP 获取文件(我知道,古老的......)

当应用程序尝试连接到 FTP 时,它会遇到错误。当我通过 FileZilla 使用相同的凭据时,如果我强制使用普通 FTP,它就可以工作。当我使用 TLS 时,它会打嗝(要么给出“服务器发送了带有不可路由地址的被动回复。”或者不喜欢我密码中的非 ASCII 字符。)

有没有办法在我的应用程序中强制使用普通的 FTP?

这是功能:

def read_ftp(agency, file_name, import_type, retries = MAX_RETRIES)
    begin
      Net::FTP.open(agency[:site], agency[:user], agency[:password]) do |ftp|
        ftp.passive = true
        ftp.debug_mode = false
        log('FTP get file ' + file_name)
        ftp.gettextfile(file_name, file_name)
      end
      run(File.new(file_name), import_type) if File.exists?(file_name)
      `rm #{file_name}`
    rescue Exception
      log('FTP failed to get file ' + file_name)
      UkdImportRetry.create(:agency_name => agency[:name], :file_name => file_name, :import_type => import_type, :retries_left => retries - 1 ) if retries > 1
      raise
    end
  end

我尝试了几种变体,例如ftp.open_ssl = falseftp.ssl = falsestoptls(ftp),但它们甚至使传输失败,即使是到无问题的站点。

知道我该怎么做(不打扰其他公司)吗?

4

0 回答 0