當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。