我正在尝试从需要凭据的 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")
Run Code Online (Sandbox Code Playgroud)
我尝试了几个函数(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
Run Code Online (Sandbox Code Playgroud)
在阅读了这个错误之后,我尝试了两件事 - 1. 在 downloadFile 函数中指定 setInternet2(use=TRUE);和 2. 在全局工具 > 包中取消选中“为 HTTP 使用 Internet Explorer 库/代理”。
如果有人可以帮助我使用 R 将这些压缩文件下载到本地目录,我将不胜感激。谢谢。
有趣的。我将参数更改ftp.use.epsv = FALSE为ftp.use.epsv = TRUE并且工作得很好。
另一个使响应更有条理的变化:
从filenames<-strsplit(filenames, "\r\n")
到:filenames<-strsplit(filenames, "\n")