ruby ftp超时问题

Mar*_*ark 0 ruby ftp

我编写了一个ruby脚本,使用ftp/net从ftp站点检索数据.除了尝试下载文件本身时超时的最后阶段,一切似乎都运行良好.任何想法为什么会这样?'samples'现在有一个目录用于测试目的.

ftp = Net::FTP.new('ftp.sra.ebi.ac.uk')
ftp.login
puts "connected!"

errors = []
samples = ["SRR016000"]

samples.each do |sample|
  files = ftp.chdir("vol1/fastq/SRR016/#{sample}/")
  puts "changed directory"
  #files = ftp.list('SRR*')
  begin
    Timeout.timeout(20) do
      ftp.getbinaryfile("#{sample}_1.fastq.gz")
    end
  rescue Timeout::Error
     errors << "File download timed out for: #{sample}"
     puts errors.last
  end
end

ftp.close
puts "All done!"
Run Code Online (Sandbox Code Playgroud)

小智 5

找到答案:需要添加以下内容

ftp.passive = true
Run Code Online (Sandbox Code Playgroud)