Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何分批进行SFTP传输?_Ruby On Rails_Ruby_Sftp_Net Sftp - Fatal编程技术网

Ruby on rails 如何分批进行SFTP传输?

Ruby on rails 如何分批进行SFTP传输?,ruby-on-rails,ruby,sftp,net-sftp,Ruby On Rails,Ruby,Sftp,Net Sftp,上下文:我有大约20K个文件要通过SFTP传输。 我怀疑如果我在单个会话中发送它们,会话可能会中途终止。 我尝试搜索超时,但发现空闲会话超时 所以我试着搜索是否有像批量传输这样的东西,我可以批量传输500个文件。每批处理后,将启动一个新会话。 我正在使用Ruby的Net::SFTP库 我现在的代码是 Net::SFTP.start(host, username, :password => password, :port => port) do |sftp|

上下文:我有大约20K个文件要通过SFTP传输。
我怀疑如果我在单个会话中发送它们,会话可能会中途终止。
我尝试搜索超时,但发现空闲会话超时

所以我试着搜索是否有像批量传输这样的东西,我可以批量传输500个文件。每批处理后,将启动一个新会话。
我正在使用Ruby的
Net::SFTP

我现在的代码是

      Net::SFTP.start(host, username, :password => password, :port => port) do |sftp|
        files.each do |file| # files is an array of filenames (with path)
          puts "Transferring '#{file}' to #{host}.."
          sftp.upload!(file, "/#{File.basename(file)}")
        end
      end
我试了什么?
如果存在批处理选项,我尝试在文档或博客中搜索

如果没有这样的选择,那么我计划如下处理

files.each_slice(500) do |batch|
  Net::SFTP.start(host, username, :password => password, :port => port) do |sftp|
    batch.each do |file| # files is an array of filenames (with path)
      puts "Transferring '#{file}' to #{host}.."
      sftp.upload!(file, "/#{File.basename(file)}")
    end
  end
end 

到目前为止你尝试了什么?请分享你的代码。你只是怀疑,还是你真的看到了错误?我怀疑,因为这些是20K文件,可能需要超过2小时。这就是我搜索超时值的原因。到目前为止您尝试了什么?请分享你的代码。你只是怀疑,还是你真的看到了错误?我怀疑,因为这些是20K文件,可能需要超过2小时。这就是我搜索超时值的原因。