我一直在尝试在Google云存储和RStudio服务器(我在Google云中启动的服务器)之间建立连接,以便我可以访问R中的文件以进行总和分析。 我在网上找到了三种不同的处理方式,但是到目前为止,我对这些方式的了解还不够清楚。
步骤3看起来很标准。但是当我尝试点击gcs_auth()命令时出现以下错误
gar_auto_auth(required_scopes,new_user = new_user,no_auto = no_auto ,:无法验证- options(googleAuthR.scopes.selected)需要设置为 包括https://www.googleapis.com/auth/devstorage.full_control或 https://www.googleapis.com/auth/devstorage.read_write或 https://www.googleapis.com/auth/cloud-platform
有关如何使用此连接的指南,请参见 https://github.com/cloudyr/googleCloudStorageR 但是它说它需要一个service-auth.json文件来设置环境变量以及所有其他密钥和秘密密钥,但是并没有真正说明它们的真正含义。
如果有人可以帮助我了解它的实际设置方式,或者为我提供设置环境的不错指南,我将非常感激。
谢谢。
答案 0 :(得分:1)
您可能需要FUSE适配器-这将使您可以将GCS存储桶安装为服务器上的目录。
请注意,尽管相对于FUSE,RW性能并不理想
完整文档
答案 1 :(得分:1)
使用Google Cloud提供的任何服务之前,您必须先附上卡。
因此,假设您已经创建了帐户,则在创建帐户后转到控制台,如果尚未创建 Project ,则 Create Project ,然后单击边栏上的找到 API和服务>凭据。
然后,
1)创建服务帐户密钥,将此文件保存为json,则只能下载一次。
2) OAuth 2.0客户端ID 给出应用的名称,然后选择类型作为Web应用并下载json文件。
现在要进行存储,请转到侧边栏查找存储,然后单击它。
创建Bucket并命名为Bucket。
我已经在存储桶中添加了单个图像,也可以出于代码目的添加图像。
让我们看看如何从存储中下载该映像,以进行其他操作,您可以按照给出的链接进行操作。
首先将环境文件创建为.Renviron,以便它自动捕获json文件并将其保存在工作目录中。
In .Renviron file add those two downloaded json files like this
GCS_AUTH_FILE="serviceaccount.json"
GAR_CLIENT_WEB_JSON="Oauthclient.json"
#R part
library(googleCloudStorageR)
library(googleAuthR)
gcs_auth() # for authentication
#set the scope
gar_set_client(scopes = c("https://www.googleapis.com/auth/devstorage.read_write",
"https://www.googleapis.com/auth/cloud-platform"))
gcs_get_bucket("you_bucket_name") #name of the bucket that you have created
gcs_global_bucket("you_bucket_name") #set it as global bucket
gcs_get_global_bucket() #check if your bucket is set as global,you should get your bucket name
objects <- gcs_list_objects() # data from the bucket as list
names(objects)
gcs_get_object(objects$name[[1]], saveToDisk = "abc.jpeg") #save the data
**Note :**if you dont get json file loaded restart the session using .rs.restartR()
and check the using
Sys.getenv("GCS_AUTH_FILE")
Sys.getenv("GAR_CLIENT_WEB_JSON")
#it should show the files