GCSConnection 1.6.0
你需要有一个服务帐户凭据进行身份验证与谷歌云存储API。accessable凭证确定哪些数据源。请按照说明谷歌身份验证创建您的凭证文件并下载到您的本地机器上(注意,这是可以做到在云中控制台)。包将搜索凭证文件的环境变量GOOGLE_APPLICATION_CREDENTIALS
当它被加载。如果不能找到凭证,它将寻找环境变量GCS_AUTH_FILE
代替。如果环境变量都是空的,你只能访问公共数据。如果你设置环境变量加载包后,您可以重新运行汽车认证gcs_cloud_auth ()
。
这个函数gcs_cloud_auth
提供两种方式进行身份验证与谷歌的云。当你有一个服务帐户的凭证,您可以验证与谷歌云通过调用gcs_cloud_auth (credentials_file_path)
。第二种方法是让凭证云SDK。这个包可以与命令行工具gcloud交互。一旦帐户设置的gcloud
程序,可以验证包gcs_cloud_auth (gcloud = TRUE)
。默认情况下,这个计划将使用第一个帐户在gcloud与谷歌进行身份验证。如果gcloud有多个帐户,您可以切换账户gcs_cloud_auth (gcloud = TRUE,电子邮件=您的电子邮件地址)
。
并不是所有的云桶需要凭据访问。你可以阅读与谷歌公共数据没有进行身份验证。默认情况下,如果包未能找到凭证的环境变量,它将使用anouymous从谷歌云访问方法来查询数据。否则,您可以通过调用切换到anouymous模式gcs_cloud_auth (json_file = NULL)
。
一旦设置了凭证,你可以检查你的牌和认证类型通过:
gcs_get_cloud_auth() # >标记:零# >计费项目ID:零# >认证来源:JSON文件
创建一个连接到一个文件在一桶很简单,您只需提供一个URLgcs_connection
。下面是一个示例创建一个阅读谷歌云平台连接到一个公共数据集。
# #相当于:# #文件< -“genomics-public-data / NA12878.chr20.sample.DeepVariant-0.7.2。vcf”文件<——“gs: / / genomics-public-data / NA12878.chr20.sample.DeepVariant-0.7.2。vcf " con < gcs_connection(=描述文件,打开= r) readline (con, n = 2 l) # > [1]“# # fileformat = VCFv4.2“# >[2]”# #过滤器= < ID =通过描述= \“所有过滤器通过\”>“关闭(con)
请注意,您不需要的凭证访问公共数据。字符“r”参数开放
是读的缩写,请参阅gcs_connection ?
为更多的细节。
也可以分别指定文件和桶名称。例如:
file_name <——“NA12878.chr20.sample.DeepVariant-0.7.2。vcf“bucket_name <——“genomics-public-data”反对< - gcs_connection(描述= file_name开放= r,桶= bucket_name) readline (con, n = 2 l) # > [1]“# # fileformat = VCFv4.2”# >[2]“# #过滤器= < ID =通过描述= \“所有过滤器通过\”>“关闭(con)
上面的代码可以创建与前面的示例相同的连接。注意,不能提供的URI和桶的名字gcs_connection
。
编写连接,可以通过指定一个适当的开放式的gcs_connection
函数。请注意,由于谷歌云存储的限制,没有seekable写连接,这意味着您不能使用寻求
函数
浏览该文件。当编写创建连接。它总是在文件的开头开始。如果存在一个具有相同名称的文件,旧的文件将被删除。编写连接关闭后,该文件将成为不可变的,文件上没有进一步的变化。
除了手动创建一个连接,包提供了一个简单的和榕S4类来管理文件。你可以一桶/文件夹中所有文件的列表
这些是等价的# # # # x < - gcs_dir (“gs: / / genomics-public-data / clinvar /”) # # x <——gcs_dir (“genomics-public-data / clinvar /”) x < - gcs_dir (“gs: / / genomics-public-data / clinvar /”) x # > 4项在文件夹“genomics-public-data / clinvar /”: # > - - - - - - - - - - - - - - - - - - - - - - # >名称大小# > 1 README。txt 227 b disease_names # > 2。txt 2.5 mb variant_summary # > 3。txt 89.3 mb variant_summary.txt # > 4。广州8.3 mb # > - - - - - - - - - - - - - - - - - - - - - - # >总大小:99.9 mb
注意,清单文件在一桶,尾部的斜杠不让任何差异。然而,如果你想要一桶内列表文件在一个文件夹,建议来显式地添加一个/
在最后。尾部的斜杠并不是强制性的,但是如果没有末尾斜杠礼物,包装需要一个额外的通信与云计算,以确定是否一个文件或文件夹的路径,可以双你的时间成本。
事实上,没有层次结构在一桶,所有文件都在同一个水平。通过使用斜杠分隔符,云计算使文件像他们存储在文件夹。虽然云没有任何限制的使用/
在文件的名字,一个好的实践是不使用/
最后一个文件的名字会引起不必要的混乱。
一旦获得文件的列表,您可以更改您的当前目录或查看一个文件的细节美元
或[[
操作符
# #相当于:x美元README。txt myfile < - x [[" README。txt”]] myfile # >文件:clinvar / README。txt # >斗:genomics-public-data # >大小:227 b # >类型:文本/纯# >最后修改:2018 - 10 - 16 t15:11:31.610z # > URI: gs: / / genomics-public-data / clinvar / README。txt # > URL: https://console.cloud.google.com/storage/browser/genomics-public-data/?prefix=clinvar%2FREADME.txt >收费项目:
您还可以使用。。
去父文件夹,~
去叶根。
# #相当于:美元myfile . .“myfile [[" . .“]]> 4号项目在文件夹“genomics-public-data / clinvar /”: # > - - - - - - - - - - - - - - - - - - - - - - # >名称大小# > 1 README。txt 227 b disease_names # > 2。txt 2.5 mb variant_summary # > 3。txt 89.3 mb variant_summary.txt # > 4。广州8.3 mb # > - - - - - - - - - - - - - - - - - - - - - - # >总大小:99.9 mb # # myfile美元”~“myfile[[" ~ "]] # > 17项斗“genomics-public-data”: # > - - - - - - - - - - - - - - - - - - - - - - # >名称大小# > 1 NA12878.chr20.sample.DeepVariant-0.7.2。NA12878.chr20.sample vcf 7.2 kb # > 2。bam 55.8 kb # > 3自述379 b号> 4 1000 -基因组阶段- 3 / * # > 5 1000 -基因组/ * # > 6 clinvar / * # > 7 cwl-examples / * # > 8 ftp-trace.ncbi.nih.gov / * # > 9 gatk-examples / * 10连锁不平衡/ * # # > > 11 platinum-genomes / * # > 12 precision-fda / * # > 13引用/ * / * # 14 # >资源> 15 simons-genome-diversity-project / 16测试数据/ * # * # > > 17 ucsc的/ * # > - - - - - - - - - - - - - - - - - - - - - - # >总大小:63.4 kb
连接可以通过
# #相当于:gcs_connection (myfile)反对< - myfile get_connection美元(开放= r)反对# >与# >描述“gs: / / genomics-public-data / clinvar / README。txt“# >类”谷歌云存储“# >模式”r“# >文本”文本“# >打开”打开“# >可以阅读“是的”# >可以写“否”关闭(con)
注意,您可以通过一个文件对象的函数gcs_connection
。这个函数gcs_cp
同时支持文件和文件夹对象。您可以查询文件信息、复制、删除文件通过文件管理器通过
# #美元获得文件名myfile file_name # >[1]”的自述。三种“# # # #复制文件的目的地,您可以指定一个文件路径,# #或一个文件夹的路径。目的地< -tempdir()美元myfile copy_to(目的地)file.exists (file.path(目的地,myfile file_name)美元)# >[1]真正的# #删除文件,函数是excutable # #只有当你有权删除该文件。# #使用“安静= TRUE”压制前确认删除该文件。# x美元README。txt美元删除(安静= FALSE)
请注意,您不能删除一个文件夹因为beforementioned文件层次结构问题。一旦所有的文件在一个文件夹已被删除,该文件夹将被删除。
启用一些桶请求者支付,这意味着你负责访问数据在桶的成本。因此,您必须有一个有效的计费项目阅读桶中的数据。默认情况下,如果您使用JSON文件验证与谷歌云计费项目在JSON文件中列出的项目,这是你使用的项目生成JSON文件。如果你使用gcloud,计费项目是默认的项目在您的配置文件。您可以查看和更改默认账单项目通过
gcs_get_billing_project() # >字符(0)gcs_set_billing_project(“项目ID”)
访问数据的桶中,您还需要传递参数billing_project = TRUE
你想使用的gcs功能。例如,如果uri
是通往“访问者付费”数据的文件,你可以通过它的信息吗gcs_dir (uri, billing_project = TRUE)
。请记住,你会的收取一次
如果你发送一个账单项目一桶没有请求者支付的启用。因此,所有gcs函数的默认行为是访问桶没有计费项目。如果你想让你的计费项目参与每个gcs函数,您可以更改此设置
gcs_set_requester_pays(真)gcs_get_requester_pays() # >[1]真的
减少网络请求的数量和加速性能的连接,每个连接都有一个相关联的缓冲区。默认大小是1 mb的缓冲。你可以设置或获取缓冲区大小通过gcs_read_buff
,gcs_write_buff
,gcs_get_read_buff
和gcs_get_write_buff
功能:
gcs_get_read_buff () # > [1] 1048576 gcs_get_write_buff () # > [1] 1048576
请注意最小写连接缓冲区大小为256 Kb。创建连接小缓冲区大小可能会影响性能。