我正在尝试在 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 = false
、ftp.ssl = false
和stoptls(ftp)
,但它们甚至使传输失败,即使是到无问题的站点。
知道我该怎么做(不打扰其他公司)吗?