我正在尝试在位于多个代理后面的远程服务器上下载 R 中的文件。某些东西 - 我无法弄清楚是什么 - 导致文件在我尝试在该服务器上访问它时被缓存返回,无论我是通过 R 还是只是通过 Web 浏览器。
我尝试cacheOK=FALSE
在download.file
通话中使用,但没有效果。
每有没有办法强制浏览器刷新/下载图像?我尝试在 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 浏览器访问时,它确实返回了文件的最新版本。但是,当download.file
在 R 中访问时,这会返回一个损坏的 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 并在其末尾添加 ?someRandomString 的原因?