Ruby ruby - ftp 变量怎么传递紧急求解?

sunsonavaj · 2012年07月16日 · 最后由 Sh4d0wBlade 回复于 2016年10月26日 · 3104 次阅读
require 'net/http'
 def exec_ftp
        log_ftp = File.open(File.dirname(__FILE__)+"/../log/ftp/#{time_to_simple_str}-receive.log", 'a+')
        source_file="gift_#{Time.now.strftime('%Y%m%d')}.txt"
        log_ftp.puts "start exec ftp get file #{Time.now.strftime('%Y%m%d')}"
        log_ftp.puts "file name is #{source_file}"
        ftp=Net::FTP.open('****') do |ftp|
                ftp.login('***', '***')
                ftp.chdir('incoming/')
               ** ftp.getbinaryfile(,)**
        end
        puts "ftp transer end"
        sync_data
        log_ftp.close
  end`

上面的 source_file 的变量名怎么传递

ftp.getbinaryfile(source_file)

btw,代码很挫,像 python 选手。

那就给个好点的学习 Demo 谢谢!

#2 楼 @sunsonavaj 缩进至少调整一下啊

require 'net/http'

def exec_ftp
  log_ftp = File.open(File.dirname(__FILE__) + "/../log/ftp/#{time_to_simple_str}-receive.log", 'a+')
  source_file = "gift_#{Time.now.strftime('%Y%m%d')}.txt"
  log_ftp.puts "start exec ftp get file #{Time.now.strftime('%Y%m%d')}"
  log_ftp.puts "file name is #{source_file}"
  ftp = Net::FTP.open('****') do |ftp|
    ftp.login('***', '***')
    ftp.chdir('incoming/')
    ** ftp.getbinaryfile(,)**
  end
  puts "ftp transer end"
  sync_data
  log_ftp.close
end

请问这个 Net::FTP 新创建一个对象并 open 时怎样指定端口号?官方文档里也没写

需要 登录 后方可回复, 如果你还没有账号请 注册新账号