我正在尝试建立一个在R中运行并可以从GCP项目读取GCS存储桶的Google合作实验室笔记本。我正在使用googleCloudStorageR
软件包。为了验证和读取存储桶,初始的Co-lab笔记本运行以下Python命令:
!gcloud auth login
!gcloud config set project project_name
!gcloud sql instances describe project_name
如何使用googleCloudStorageR
软件包在R中运行以上命令?在软件包的文档中,他们提到使用gcs_auth
函数来读取身份验证JSON文件。但是,由于我将通过在R上运行的Co-Lab笔记本访问存储桶,因此我不想使用身份验证文件,而是希望通过Co-Lab笔记本进行身份验证并实时连接到GCP存储。谢谢!
答案 0 :(得分:3)
弄清楚了。在合作实验室笔记本中,运行以下代码段:
install.packages("httr")
install.packages("R.utils")
install.packages("googleCloudStorageR")
if (file.exists("/usr/local/lib/python3.6/dist-packages/google/colab/_ipython.py")) {
library(R.utils)
library(httr)
reassignInPackage("is_interactive", pkgName = "httr", function() return(TRUE))
}
library(googleCloudStorageR)
options(
rlang_interactive = TRUE,
gargle_oauth_email = "email_address",
gargle_oauth_cache = TRUE
)
token <- gargle::token_fetch(scopes = "https://www.googleapis.com/auth/cloud-platform")
googleAuthR::gar_auth(token = token)
googleCloudStorageR
软件包使用的含漱液身份验证存在问题。一种与此处列出的(https://github.com/r-lib/gargle/issues/140)类似的解决方法是为云范围生成令牌,这将为我们提供一个令牌对象,然后在gar_auth
函数中使用该对象。