使用RCurl(或任何其他方法)从FTP下载.RData和.csv文件

rba*_*att 7 ftp r download rcurl

我已经将.RData文件(使用创建save())上传到ftp服务器,我正在尝试使用getURL()来下载同一个文件.对于我读过的所有示例和帖子,我似乎无法让它工作.

使用以下命令保存.RData文件:

save(results, file=RDataFilePath, compress="xz") #save object "results" w/ compression
#RDataFilePath is the location of the results.RData file on my harddrive
Run Code Online (Sandbox Code Playgroud)

这些数据使用以下方式上载

uploadURL <-"ftp://name:password@host/folder/results.RData" #name the url
ftpUpload(RDataFilePath, to=uploadURL, connecttimeout=120) #upload
Run Code Online (Sandbox Code Playgroud)

这就是我尝试下载results.RData的方法getURL:

downloadURL <- "host/folder/results.RData"
load(getURL(downloadURL, userpwd="name:password", connecttimeout=120))
Run Code Online (Sandbox Code Playgroud)

这给出了以下错误:

Error in curlPerform(curl = curl, .opts = opts, .encoding = .encoding) : 
  embedded nul in string: 'ý7zXZ'
Run Code Online (Sandbox Code Playgroud)

当我将downloadURL字符串粘贴到我的浏览器中时,.RData文件立即下载,所以我知道没有拼写错误.错误消息表明url无法读取压缩格式的b/c; 但是,当我使用save()w/o压缩时,我收到类似的错误消息.

尝试从FTP下载.csv时,我也收到错误消息:

read.csv(getURL(downloadURL1)) #downloadURL1 is similar to downloadURL, but points to the .csv file
Error in file(file, "rt") : cannot open the connection 
Run Code Online (Sandbox Code Playgroud)

然后是一个警告,说明In addition: Warning message: In file(file, "rt") : cannot open file然后开始列出.csv的内容.

我一直试图在早上的大部分时间里弄清楚这一点,我觉得我必须遗漏一些非常基本的东西.我猜我需要更改一些curl选项,以便它知道它将要读取的文件类型.我的语法可能有点偏,我没有正确使用getURL,但我不确定我应该做什么.

任何提示将非常感谢.

ps我目前的做法是基于这篇文章

kit*_*ith 9

您可以尝试将其分为两个步骤:首先下载文件,然后加载它.

download.file(downloadURL, "temp.rData")
load("temp.rData")
Run Code Online (Sandbox Code Playgroud)

或者坚持使用rCurl你可以尝试:

bin = getBinaryURL(downloadURL, ...yourOtherParams...) 
writeBin(bin, "temp.rData")  
load("temp.rData")
Run Code Online (Sandbox Code Playgroud)