rubymultithreadingmultiprocessnet-sftp

how to upload files asynchronously (parallely ) using ruby net-sftp


what is the best way to upload files parallely using sftp ?
using multithreading and multi-process is the only options ?
can we use any of the gems for that ?
I using ruby 1.8.6.


Solution

  • Net::SFTP's upload method (without bang) operates asynchronously, i.e. in parallel.

    From the docs:

    Or, if you have multiple uploads that you want to run in parallel, you can employ the wait method of the returned object:

    uploads = %w(file1 file2 file3).map { |f|
      sftp.upload(f, "remote/#{f}")
    }
    uploads.each { |u| u.wait }