Что делать, когда вы видите «Тайм-аут операции» в download.file ()? - PullRequest
0 голосов
/ 17 апреля 2019

Я пытаюсь загрузить несколько файлов из НАСА в R, используя следующий код:

download.file() 


#Loop to download the files
  for(FileName in unlist(Download_list)){
    URL <- paste0(Comb_3parts_of_Http1, FileName)
    download.file(URL, destfile=paste0(folder_name,"/",FileName), method="auto", 
                  mode="wb", timeout="600")

    }

Он работает правильно, однако иногда он показывает следующую ошибку, прежде чем закончить со всеми файлами.Означает, что это работает хорошо, и нет проблем с кодами.Просто это проблема с интернет-соединением.

Я читал здесь (https://stat.ethz.ch/R-manual/R-patched/library/base/html/connections.html), что:

"Большинство операций блокировки для HTTP / FTP-URL-адресов и сокетов зависят от времени ожидания, установленногоoptions («timeout»). Обратите внимание, что это тайм-аут для отсутствия ответа, а не для всей операции. Тайм-аут устанавливается во время открытия соединения (точнее, когда последнее соединение этого типа - http :, ftp: или сокет - был открыт). "

Как вы могли видеть в коде, я использовал timeout =" 600 ". Однако, кажется, есть трюк, которого я НЕ знаю.

Есть ли способ нажать R, чтобы попытаться в течение нескольких часов, не показывая:

InternetOpenUrl failed: 'The operation timed out'
...