Автоматизация загрузки Dropbox в R - PullRequest
0 голосов
/ 03 июля 2018

Я пытаюсь настроить автоматизацию через R, которая будет загружать CSV-файл из Dropbox на еженедельной основе. Я использую пакет retmis.

Проблема в том, что в URL-адресе есть часть соглашения об именах, которая меняется каждый раз, когда кто-то загружает новую версию файла в папку Dropbox.

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 голосов
/ 05 июля 2018

Эти строки в общих ссылках Dropbox являются случайными и непредсказуемыми. Каждая новая общая ссылка получает новую строку.

Есть несколько способов подойти к этому:

a) В текущей настройке вы включаете дату в имя файла, поэтому каждую неделю загрузка приводит к появлению нового файла. Если вам когда-либо нужны только данные текущей недели, и вы можете контролировать, кто или что выполняет загрузку, вы можете вместо этого опустить дату в имени файла и использовать одно и то же имя файла / путь каждую неделю, перезаписывая данные каждый раз. Если вы сделаете это, вы можете использовать одну и ту же общую ссылку каждую неделю, и она всегда будет просто возвращать последние данные.

b) Если вам нужно сохранить каждый файл, вы можете использовать Dropbox API для создания новой общей ссылки для каждого нового файла. Для этого вы должны использовать конечную точку / 2 / share / create_shared_link_with_settings . (У меня нет примера кода R для этого, но есть пример curl, который вы можете перевести или использовать стороннюю библиотеку.)

в) Если вы можете использовать API-интерфейс Dropbox, и вам не нужна общая ссылка для чего-то другого, вы можете использовать API-интерфейс для прямого доступа к данным файла без создания общей ссылки. Для этого вы должны использовать конечную точку / 2 / files / download .

...