我有一个 R Shiny 应用程序,当前使用 .csv 文件作为其主要数据源。该文件位于应用程序的文件夹中,因此当我使用 RSConnect 将应用程序部署到shinyapps.io 时,它会随之上传。问题是,如果我对后端数据文件有任何更新,我就必须重新部署整个应用程序。
我认为应该可行的解决方法是使应用程序代码设置中的 read.csv 行查找我已推送到 GitHub 存储库的 csv 文件。我在自己的在线研究中遇到的不足是,存储库需要是私有的,因此我需要通过某种身份验证。但我在网上能找到的所有内容都是从 GitHub 下载整个包之类的东西,而不是读取单个文件。
我知道您可以
read.csv("raw file link")
获取公共存储库,但是当我这样做并尝试部署到shinyapps.io 时,该应用程序崩溃了,因为它说无法进行身份验证。
我也已经允许从shinyapps.io 和shinyapps.io 验证/访问GitHub。希望我只是缺少一个存储的令牌或类似的东西。
在有人发布更好的答案后,我可能会删除它。我正在做类似的事情(尽管从 Github 读取图像文件)。我不记得我是如何验证它的。
这是我的代码:
library(httr)
req <- GET("https://api.github.com/repos/{insert path here}/git/trees/main?recursive=1")
stop_for_status(req)
filelist <- unlist(lapply(content(req)$tree, "[", "path"), use.names = F)
mypics <- list()
for(i in 1:length(filelist)) {
print(paste("Loop ", i, "a"))
fn <- paste0("https://raw.github.com/{insert path here}/main/", filelist[i])
mypics$pics[[i]] <- image_read(fn)
}
rm(req, fn, i)