我想从私有(private) GitHub 存储库下载一个 csv 文件并将其加载到当前环境。我不想简单地 read_csv("raw_git_url")
因为脚本将是公开的并且复制/粘贴 raw_git_url 将给我留下 filename.csv?token=AHh_HT3Aetc....
并且我不想公开我的 token 号。
相反,我获得了 GitHub 身份验证 token 并将其作为 .Renviron
文件放入我的工作目录中。
我可以像这样将文件写入磁盘/工作目录:
library(httr)
url <- "https://raw.githubusercontent.com/username/privatereponame/master/dataname.csv"
GET(url, write_disk("mynew.csv", overwrite=TRUE))
但我不想写副本 - 只需在当前环境中提供 csv 文件即可。我错过了一些明显的东西吗?将 write_disk....
更改为 readr::read_csv
命令无效。
我可以做一件骇人听闻的事——像这样访问原始内容:
x=GET(url, authenticate(Sys.getenv("GITHUB_PAT1"), ""))
enc<-stringi::stri_enc_detect(content(x, "raw"))
content(x, "text", encoding = enc[[1]]$Encoding[1])
...然后编写一些脚本将文本转换为 csv...但这感觉太冗长了。
最佳答案
有时你必须提出一个问题才能找到答案:
x=GET(url, authenticate(Sys.getenv("GITHUB_PAT1"), ""))
content(x, type="text/csv")
在 content()
中使用 type
参数设置 MIME 类型。
关于r - 使用 httr 从私有(private) GitHub 仓库加载 csv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41814897/