as_dribble: Coerce to a 'dribble'

View source: R/dribble.R

as_dribbleR Documentation

Coerce to a dribble

Description

Converts various representations of Google Drive files into a dribble, the object used by googledrive to hold Drive file metadata. Files can be specified via:

  • File path. File name is an important special case.

  • File id. Mark with as_id() to distinguish from file path.

  • Data frame or dribble. Once you've successfully used googledrive to identify the files of interest, you'll have a dribble. Pass it into downstream functions.

  • List representing Files resource objects. Mostly for internal use.

This is a generic function.

For maximum clarity, get your files into a dribble (or capture file id) as early as possible. When specifying via path, it's best to include the trailing slash when you're targeting a folder. If you want the folder foo, say ⁠foo/⁠, not foo.

Some functions, such as drive_cp(), drive_mkdir(), drive_mv(), and drive_upload(), can accept the new file or folder name as the last part of path, when name is not given. But if you say a/b/c (no trailing slash) and a folder ⁠a/b/c/⁠ already exists, it's unclear what you want. A file named c in ⁠a/b/⁠ or a file with default name in ⁠a/b/c/⁠? You get an error and must make your intent clear.

Usage

as_dribble(x, ...)

Arguments

x

A vector of Drive file paths, a vector of file ids marked with as_id(), a list of Files Resource objects, or a suitable data frame.

...

Other arguments passed down to methods. (Not used.)

Examples


# create some files for us to re-discover by name or filepath
alfa <- drive_create("alfa", type = "folder")
bravo <- drive_create("bravo", path = alfa)

# as_dribble() can work with file names or paths
as_dribble("alfa")
as_dribble("bravo")
as_dribble("alfa/bravo")
as_dribble(c("alfa", "alfa/bravo"))

# specify the file id (substitute a real file id of your own!)
# as_dribble(as_id("0B0Gh-SuuA2nTOGZVTXZTREgwZ2M"))

# Clean up
drive_find("alfa") %>% drive_rm()


googledrive documentation built on July 9, 2023, 7:04 p.m.