我想将安全参数传递给Shinyapps.io部署,以便我的应用程序可以通过以下方式获取它们:Sys.getenv('PASSWORD_X')
我在deployApp
包的rsconnect
函数中找不到任何与此相关的内容。
最佳答案
您可以使用 Renviron.site 或 .Renviron 将私有(private)数据存储并访问到 Shiny 的应用程序中。 (see here for Hadley Wickham's recommendations and instructions - ref example below)。
解:
存储API身份验证密钥/ token (Attribution: Hadley Wickham)
如果您的软件包支持基于API密钥或 token 的身份验证工作流,则鼓励用户将其存储在环境变量中。我们使用包装了Github v3 API的github R包对此进行了说明。将此模板定制为您的API +软件包,并包含在README.md或小插图中。
您的GitHub个人设置。将 token 复制到剪贴板。
安慰。
文本文件。
GITHUB_PAT = blahblahblahblahblahblah
其中名称
GITHUB_PAT
会提醒您这是哪个API,而blahblahblahblahblahblah
是您的个人访问 token ,粘贴在剪贴板上。是的,您确实要使用以点。开头的文件名。
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的方式有很多组合,所以.Renviron方法“有效”,而bash无效。当R是Emacs或RStudio的子进程时,您将无法始终依靠传递给R的环境变量。将它们放在特定于R的启动文件中,可以避免麻烦。
关于r - 如何将环境变量传递给ShinyApps,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39084284/