当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R googledrive shortcut_resolve 解决目标的捷径


检索快捷方式引用的云端硬盘文件的元数据,即快捷方式的目标。返回的 dribble 具有引用目标的常用列( nameiddrive_resource )。它还将包括 name_shortcutid_shortcut 列,它们引用原始快捷方式。有 3 种可能的情况:

  1. file 是快捷方式,用户可以drive_get() 目标。一切都很简单而且很好。

  2. file 是快捷方式,但 drive_get() 对于目标失败。如果用户可以看到快捷方式,但没有目标的读取访问权限,则可能会发生这种情况。如果目标已被删除或删除,也可能会发生这种情况。在这种情况下,除 id 之外的所有目标元数据都将丢失。对有问题的 id 调用 drive_get() 以查看具体错误。

  3. file 不是快捷方式。 name_shortcutid_shortcut 都将是 NA

用法

shortcut_resolve(file)

参数

file

识别您的 Google 云端硬盘上感兴趣的文件的内容。可以是名称/路径的字符向量、标有 as_id() 的文件 id 或 URL 的字符向量或 dribble

dribble 类的对象,每个文件一行的 tibble。额外的列 name_shortcutid_shortcut 引用原始快捷方式。

例子

# Create a file to make a shortcut to
file <- drive_example_remote("chicken_sheet") %>%
  drive_cp(name = "chicken-sheet-for-shortcut")
#> Original file:
#> • chicken_sheet <id: 1SeFXkr3XdzPSuWauzPdN-XnaryOYmZ7sFiUF5t-wSVU>
#> Copied to file:
#> • chicken-sheet-for-shortcut
#>   <id: 1upU5T-g1ZIKJWs9KENlriViNxj18y5SXfk-p1bpRR3Q>

# Create a shortcut
sc1 <- file %>%
  shortcut_create(name = "shortcut-1")
#> Created Drive file:
#> • shortcut-1 <id: 1xGNFmT3EK9iWHIY39zSJlKRkHB1XU-Oz>
#> With MIME type:
#> • application/vnd.google-apps.shortcut

# Create a second shortcut by copying the first
sc1 <- sc1 %>%
  drive_cp(name = "shortcut-2")
#> Original file:
#> • shortcut-1 <id: 1xGNFmT3EK9iWHIY39zSJlKRkHB1XU-Oz>
#> Copied to file:
#> • shortcut-2 <id: 18UGke5J1cMScXrUqqxIPSSjKH_t7lR9c>

# Get the shortcuts
(sc_dat <- drive_find("-[12]$", type = "shortcut"))
#> # A dribble: 2 × 3
#>   name       id                                drive_resource   
#>   <chr>      <drv_id>                          <list>           
#> 1 shortcut-2 18UGke5J1cMScXrUqqxIPSSjKH_t7lR9c <named list [32]>
#> 2 shortcut-1 1xGNFmT3EK9iWHIY39zSJlKRkHB1XU-Oz <named list [32]>

# Resolve them
(resolved <- shortcut_resolve(sc_dat))
#> ℹ Resolved 2 shortcuts found in 2 files:
#> • shortcut-2 <id: 18UGke5J1cMScXrUqqxIPSSjKH_t7lR9c> ->
#>   chicken-sheet-for-shortcut
#>   <id: 1upU5T-g1ZIKJWs9KENlriViNxj18y5SXfk-p1bpRR3Q>
#> • shortcut-1 <id: 1xGNFmT3EK9iWHIY39zSJlKRkHB1XU-Oz> ->
#>   chicken-sheet-for-shortcut
#>   <id: 1upU5T-g1ZIKJWs9KENlriViNxj18y5SXfk-p1bpRR3Q>
#> # A dribble: 2 × 5
#>   name                   id       name_shortcut id_shortcut drive_resource
#>   <chr>                  <drv_id> <chr>         <drv_id>    <list>        
#> 1 chicken-sheet-for-sho… 1upU5T-… shortcut-2    18UGke5…    <named list>  
#> 2 chicken-sheet-for-sho… 1upU5T-… shortcut-1    1xGNFmT…    <named list>  

resolved$id
#> <drive_id[2]>
#> [1] 1upU5T-g1ZIKJWs9KENlriViNxj18y5SXfk-p1bpRR3Q
#> [2] 1upU5T-g1ZIKJWs9KENlriViNxj18y5SXfk-p1bpRR3Q
file$id
#> <drive_id[1]>
#> [1] 1upU5T-g1ZIKJWs9KENlriViNxj18y5SXfk-p1bpRR3Q

# Delete the target file
drive_rm(file)
#> File deleted:
#> • chicken-sheet-for-shortcut
#>   <id: 1upU5T-g1ZIKJWs9KENlriViNxj18y5SXfk-p1bpRR3Q>

# (Try to) resolve the shortcuts again
shortcut_resolve(sc_dat)
#> ℹ Resolved 0 of 2 shortcuts found in 2 files:
#> • shortcut-2 <id: 18UGke5J1cMScXrUqqxIPSSjKH_t7lR9c> -> NA
#>   <id: 1upU5T-g1ZIKJWs9KENlriViNxj18y5SXfk-p1bpRR3Q>
#> • shortcut-1 <id: 1xGNFmT3EK9iWHIY39zSJlKRkHB1XU-Oz> -> NA
#>   <id: 1upU5T-g1ZIKJWs9KENlriViNxj18y5SXfk-p1bpRR3Q>
#> # A dribble: 2 × 5
#>   name  id       name_shortcut id_shortcut drive_resource  
#>   <chr> <drv_id> <chr>         <drv_id>    <list>          
#> 1 NA    1upU5T-… shortcut-2    18UGke5…    <named list [3]>
#> 2 NA    1upU5T-… shortcut-1    1xGNFmT…    <named list [3]>
# No error, but resolution is unsuccessful due to non-existent target

# Clean up
drive_rm(sc_dat)
#> Files deleted:
#> • shortcut-2 <id: 18UGke5J1cMScXrUqqxIPSSjKH_t7lR9c>
#> • shortcut-1 <id: 1xGNFmT3EK9iWHIY39zSJlKRkHB1XU-Oz>
源代码:R/shortcut.R

相关用法


注:本文由纯净天空筛选整理自Jennifer Bryan等大神的英文原创作品 Resolve shortcuts to their targets。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。