使用R从需要凭据的FTP站点下载文件

时间:2017-03-24 14:08:55

标签: r ftp

我正在尝试从需要凭据的FTP站点下载一些zip文件。我能够使用RCurl pacakge中的getURL函数从站点获取文件列表。这是我使用的代码(从旧的stackoverflow问题之一的答案)。

library(RCurl)
url<-"ftp://ftp.mysite.com/EOD/"
userpwd<-"name:password"
filenames <- getURL(url, userpwd = userpwd,
                    ftp.use.epsv = FALSE,dirlistonly = TRUE)
filenames<-strsplit(filenames, "\r\n")

我已经尝试了几个函数(downloadFile,download.file,getURL等)将这些文件下载到我的计算机上的本地目录中,但是,我一直收到以下错误 -

Error in download.file(url, destfile = pathnameT, mode = mode, quiet = !isVisible(verbose),  : 
  cannot open URL 'ftp://ftp.mysite.com/EOD/testfile_txt.zip'
In addition: Warning message:
In download.file(url, destfile = pathnameT, mode = mode, quiet = !isVisible(verbose),  :
  InternetOpenUrl failed: 'The login request was denied

在阅读了这个错误之后,我尝试了两件事 - 1.在downloadFile函数中指定setInternet2(use = TRUE);和 2.在全局工具&gt;中取消选中“使用Internet Explorer库/代理进行HTTP”。 Pacakages。

如果有人可以帮我将这些压缩文件下载到使用R的本地目录,我将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:0)

有趣。我将参数ftp.use.epsv = FALSE更改为ftp.use.epsv = TRUE并正常工作。

另一个使响应更加有条理的变化:

来自filenames<-strsplit(filenames, "\r\n")

收件人:filenames<-strsplit(filenames, "\n")