Я пытаюсь настроить автоматизацию через 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 букв и цифр.
Можно ли что-то автоматизировать, и если да, то как я могу это сделать?





Эти строки в общих ссылках Dropbox случайны и непредсказуемы. Каждая новая общая ссылка получает новую строку.
Есть несколько способов подойти к этому:
a) В вашей текущей настройке вы включаете дату в имя файла, поэтому каждую неделю в результате загрузки создается новый файл. Если вам когда-либо нужны данные только за текущую неделю, и вы можете контролировать, кто или что выполняет загрузку, вы можете вместо этого опустить дату в имени файла и использовать одно и то же имя / путь к файлу каждую неделю, перезаписывая данные. каждый раз. Если вы сделаете это, вы сможете использовать одну и ту же общую ссылку каждую неделю, и она всегда будет возвращать только самые свежие данные.
б) Если вам действительно нужно сохранить каждый файл, вы можете использовать API Dropbox для создания новой общей ссылки для каждого нового файла. Для этого вы должны использовать / 2 / sharing / create_shared_link_with_settings конечная точка. (У меня нет для этого примера кода R, но есть пример curl, который вы можете перевести или использовать стороннюю библиотеку.)
c) Если вы можете использовать Dropbox API и вам также не нужна общая ссылка для чего-то еще, вы можете использовать API для прямого доступа к данным файла, не создавая общую ссылку. Для этого вы должны использовать конечная точка / 2 / files / download.
Попробуйте использовать rdrop2, который использует официальный API для получения файлов из Dropbox. Что вообще такое пакет «ретмис»? Кажется, я не могу найти его в Google.