проблема истечения времени ожидания - PullRequest
0 голосов
/ 09 августа 2011

Я написал скрипт ruby ​​для извлечения данных с ftp-сайта с использованием ftp / net.Кажется, что все работает хорошо, кроме последней стадии, когда время ожидания истекает, когда он пытается загрузить сам файл.Есть идеи, почему это так?«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!"

Ответы [ 3 ]

5 голосов
/ 09 августа 2011

Нашел ответ: Необходимо добавить следующее

ftp.passive = true
0 голосов
/ 09 августа 2011

Приведенный выше код работал нормально для меня после добавления двух операторов require и изменения значения времени ожидания с 20 на 20_000.

0 голосов
/ 09 августа 2011

Насколько велик файл, который вы пытаетесь загрузить?Вы уверены, что загрузка закончится через 20 секунд?Вы пытались удалить блок begin/rescue/end?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...