在文件名后面附加一个随机后缀时,r-download.file()失败



我正试图在位于多个代理后面的远程服务器上下载一个R文件。每当我尝试在服务器上访问文件时,无论是通过R还是仅通过Web浏览器,都会有某种原因导致文件被缓存返回。

我已经尝试在download.file调用中使用cacheOK=FALSE,但没有效果。

Per是否有强制浏览器刷新/下载图像的方法?我试着在URL的末尾添加一个随机后缀:

download.file(url = paste("http://mba.tuck.dartmouth.edu/pages/faculty/ken.french/ftp/F-F_Research_Data_Factors_daily.zip?",
format(Sys.time(), "%d%m%Y"),sep=""), 
destfile = "F-F_Research_Data_Factors_daily.zip", cacheOK=FALSE)

这会产生例如以下URL:

http://mba.tuck.dartmouth.edu/pages/faculty/ken.french/ftp/F-F_Research_Data_Factors_daily.zip?17092012

当从远程服务器上的Web浏览器访问时,确实会返回文件的最新版本。但是,当使用R中的download.file进行访问时,会返回损坏的zip存档。WinRAR和R的unzip函数都抱怨zip文件已损坏。

unzip("F-F_Research_Data_Factors_daily.zip")
1: In unzip("F-F_Research_Data_Factors_daily.zip") :
internal error in unz code

我不明白为什么通过R下载这个文件会导致返回损坏的文件,而通过Web浏览器下载则没有问题。

有人能提出一种击败R缓存的方法吗(我对此不抱希望),或者download.file不喜欢我的URL的原因吗?有RandomString钉在它的末端吗?

如果使用mode="wb",它会起作用

download.file(url = paste("http://mba.tuck.dartmouth.edu/pages/faculty/ken.french/ftp/F-F_Research_Data_Factors_daily.zip?",format(Sys.time(),"%d%m%Y"),sep=""), 
destfile = "F-F_Research_Data_Factors_daily.zip", mode='wb', cacheOK=FALSE)

最新更新