如何使用R从dropbox下载文件(任何形式)

时间:2015-08-12 04:23:36

标签: r dropbox

我试过

download.file('https://www.dropbox.com/s/r3asyvybozbizrm/Himalayas.jpg',
              destfile="1.jpg",
              method="auto")

但它返回该页面的HTML源代码。

还尝试了一点rdrop

library(rdrop2)
# please put in your key/secret
drop_auth(new_usesr = FALSE, key=key, secret=secret, cache=T)

弹出网站报道:

Invalid redirect_uri: "http://localhost:1410": It must exactly match one of the redirect URIs you've pre-configured for your app (including the path).

我不太了解URI的事情。有人可以推荐一些文件阅读......

我阅读了一些帖子,但大多数都讨论了如何从excel文件中读取数据。

repmis仅用于阅读excel文件...

library(repmis)
repmis::source_DropboxData("test.csv",
                           "tcppj30pkluf5ko",
                           sep = ",",
                           header = F)

也试过

library(RCurl)
url='https://www.dropbox.com/s/tcppj30pkluf5ko/test.csv'
x = getURL(url)
read.csv(textConnection(x))

它没有用......

任何帮助和讨论都表示赞赏。谢谢!

2 个答案:

答案 0 :(得分:9)

第一个问题是因为Jsfiddle链接指向预览页面,而不是文件内容本身,这就是您获取HTML的原因。你可以修改这样的链接虽然指向文件内容,如下所示:

https://www.dropbox.com/s/r3asyvybozbizrm/Himalayas.jpg

例如,添加raw = 1 URL参数:

https://www.dropbox.com/help/201

您的下载程序需要遵循重定向才能正常工作。

第二个问题是因为您尝试使用OAuth 2应用授权流程,这需要预先注册所有重定向URI。您可以在应用控制台的应用页面上为Dropbox API应用注册重定向URI(例如https://www.dropbox.com/s/r3asyvybozbizrm/Himalayas.jpg?raw=1}:

http://localhost:1410

有关使用OAuth的详细信息,请参阅此处的Dropbox API OAuth指南:

https://www.dropbox.com/developers/apps

答案 1 :(得分:-1)

我使用read.table(url("yourdropboxpubliclink")),例如我使用此链接

而不是使用https://www.dropbox.com/s/xyo8sy9velpkg5y/foo.txt?dl=0,这是我使用的dropbox上的chared链接 https://dl.dropboxusercontent.com/u/15634209/histogram/foo.txt

和非公共链接raw = 1将起作用

它适用于我。