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我目前的做法是基于这篇文章
您可以尝试将其分为两个步骤:首先下载文件,然后加载它.
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)