在R中自动进行Dropbox下载

时间:2018-07-03 20:28:03

标签: r dropbox dropbox-api rjava

我正在尝试通过R设置自动化,该自动化将每周从Dropbox下载CSV文件。我正在使用retmis软件包。

问题是,每次有人将新版本的文件上载到Dropbox文件夹时,URL中的命名约定就会更改。

library(retmis)

    customer_id <- source_data("https://www.dropbox.com/s/yeeih34mueagpsx/customer_id_update_20180628_adv.csv?dl=1")

正是中间部分在自动化过程中投入了一把扳手:yeeih34mueagpsx

这不会是同一回事。前一周是:

https://www.dropbox.com/s/tu5tp0ihplm7dh0/customer_id_update_20180621_adv.csv?dl=1

(您会注意到它是每个星期四上载的)

我所知道的是它将是一个由15个字母和数字组成的字符串。

这是可以自动化的东西吗?如果可以的话,我该怎么做呢?

1 个答案:

答案 0 :(得分:0)

Dropbox共享链接中的这些字符串是随机的,不可预测。每个新的共享链接都会获得一个新字符串。

您可能有几种方法可以解决此问题:

a)在您当前的设置中,您将日期包括在文件名中,因此,每周的上传都会生成一个新文件。如果您只需要提供当周的数据,并且可以控制上载者或上载者,则可以从文件名中省略日期,并通过覆盖数据每周使用相同的文件名/路径每一次。如果这样做,您可以每周使用相同的共享链接,它将始终只返回最新数据。

b)但是,如果确实需要保留每个文件,则可以使用Dropbox API为每个新文件创建一个新的共享链接。为此,您将使用/2/sharing/create_shared_link_with_settings endpoint。 (我没有用于此的示例R代码,但是有一个curl示例,您可以翻译或使用第三方库。)

c)如果您可以使用Dropbox API,并且也不需要共享链接,则可以使用API​​直接访问文件数据,而无需创建共享链接。为此,您可以使用the /2/files/download endpoint