Ответ 1
Вы можете использовать Renviron.site или .Renviron для хранения и доступа к конфиденциальным данным в своем блестящем приложении. (см. здесь рекомендации и инструкции Hadley Wickham - пример ниже).
Решение:
Сохранение ключей аутентификации API/токенов (Атрибуция: Hadley Wickham)
Если ваш пакет поддерживает процесс проверки подлинности на основе ключа или маркера API, рекомендуется пользователям хранить его в переменной окружения. Мы проиллюстрируем это с помощью пакета github R, который обертывает API Github v3. Создайте этот шаблон для вашего пакета API + и включите его в README.md или виньетку.
- Создайте токен персонального доступа в области токенов персонального доступа ваши личные настройки GitHub. Скопируйте токен в буфер обмена.
- Определите свой домашний каталог. Не уверен? Введите normalizePath ( "~/" ) в R консоль.
- Создайте новый текстовый файл. Если в RStudio сделайте File > New File > Текстовый файл.
-
Создайте такую строку:
GITHUB_PAT = blahblahblahblahblahblah
где имя GITHUB_PAT
напоминает вам, для какого API это, и blahblahblahblahblahblah
- ваш токен доступа, вставленный из буфера обмена.
-
Удостоверьтесь, что последняя строка в файле пуста (если это не будет, R будет тихо загружать файл. Если вы используете редактор, который показывает номера строк, должны быть две строки, где вторая пустой.
-
Сохраните в своем домашнем каталоге имя файла .Renviron. Если допросить, ДА, вы хотите использовать имя файла, начинающееся с точки.
- Обратите внимание, что по умолчанию файлы dotfiles обычно скрыты. Но в RStudio браузер файлов будет делать .Renviron видимым и, следовательно, легко редактировать в будущем.
-
Перезагрузите R..Renviron обрабатывается только в начале сеанса R.
-
Используйте Sys.getenv() для доступа к токену. Например, heres, как использовать ваш GITHUB_PAT с пакетом github:
library(github) ctx <- create.github.context(access_token = Sys.getenv("GITHUB_PAT")) # ... proceed to use other package functions to open issues, etc.
ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ: зачем определять эту переменную среды через .Renviron, а не в .bash_profile или .bashrc?
Поскольку существует множество комбинаций ОС и способов запуска R, где подход "Reneviron" "просто работает", а bash - нет. Когда R является дочерним процессом, скажем, Emacs или RStudio, вы всегда можете рассчитывать на переменные среды, передаваемые R. Поместите их в файл запуска, специфичный для R, и сберегите себе некоторое горе.