在OSX上的Ruby中同时上传文件夹中的文件

时间:2012-06-09 02:07:00

标签: ruby macos ftp automation

我曾见过类似的问题,但没有一个像我一样基本。我知道可以使用Net::FTP和线程。我的问题是如何创建一个线程并将其传递给上传文件。我对线程的概念仍然很新。

1 个答案:

答案 0 :(得分:1)

对于OSX,您还可以使用Automator查看Upload to FTP

然而,使用Ruby这样的东西可以作为一个起点:

def ftp_send_file(file)
  Net::FTP.open("hostname") do |ftp|
    ftp.login("user", "password")
    ...
    ftp.putbinaryfile(file)
  end
end

8.times { |i|
  puts "Starting upload no. #{i}..."

  # Launch a new thread for file upload
  Thread.new { ftp_send_file("the_big_file_#{i}") }
}

# Main thread waits for all upload threads to finish
(Thread.list - [Thread.current]).each(&:join)

正如你所看到的那样,开始一个线程并不复杂。请阅读Thread docs。那里有更多的例子。