Learn R Programming

googledrive (version 2.0.0)

shortcut_resolve: Resolve shortcuts to their targets

Description

Retrieves the metadata for the Drive file that a shortcut refers to, i.e. the shortcut's target. The returned dribble has the usual columns (name, id, drive_resource), which refer to the target. It will also include the columns name_shortcut and id_shortcut, which refer to the original shortcut. There are 3 possible scenarios:

  1. file is a shortcut and user can drive_get() the target. All is simple and well.

  2. file is a shortcut, but drive_get() fails for the target. This can happen if the user can see the shortcut, but does not have read access to the target. It can also happen if the target has been trashed or deleted. In such cases, all of the target's metadata, except for id, will be missing. Call drive_get() on a problematic id to see the specific error.

  3. file is not a shortcut. name_shortcut and id_shortcut will both be NA.

Usage

shortcut_resolve(file)

Arguments

file

Something that identifies the file(s) of interest on your Google Drive. Can be a character vector of names/paths, a character vector of file ids or URLs marked with as_id(), or a dribble.

Value

An object of class dribble, a tibble with one row per file. Extra columns name_shortcut and id_shortcut refer to the original shortcut.

Examples

Run this code
# NOT RUN {
# Create a file to make a shortcut to
file <- drive_example_remote("chicken_sheet") %>%
  drive_cp(name = "chicken-sheet-for-shortcut")

# Create a shortcut
sc1 <- file %>%
  shortcut_create(name = "shortcut-1")

# Create a second shortcut by copying the first
sc1 <- sc1 %>%
  drive_cp(name = "shortcut-2")

# Get the shortcuts
(sc_dat <- drive_find("-[12]$", type = "shortcut"))

# Resolve them
(resolved <- shortcut_resolve(sc_dat))

resolved$id
file$id

# Delete the target file
drive_rm(file)

# (Try to) resolve the shortcuts again
shortcut_resolve(sc_dat)
# No error, but resolution is unsuccessful due to non-existent target

# Clean-up
drive_rm(sc_dat)
# }

Run the code above in your browser using DataLab