Grant individuals or other groups access to files, including permission to read, comment, or edit. The returned dribble will have extra columns, shared and permissions_resource. Read more in drive_reveal().

drive_share_anyone() is a convenience wrapper for a common special case: "make this file readable by 'anyone with a link'".

drive_share(
  file,
  role = c("reader", "commenter", "writer", "fileOrganizer", "owner", "organizer"),
  type = c("user", "group", "domain", "anyone"),
  ...,
  verbose = deprecated()
)

drive_share_anyone(file, verbose = deprecated())

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.

role

Character. The role to grant. Must be one of:

  • owner (not allowed in shared drives)

  • organizer (applies to shared drives)

  • fileOrganizer (applies to shared drives)

  • writer

  • commenter

  • reader

type

Character. Describes the grantee. Must be one of:

  • user

  • group

  • domain

  • anyone

...

Name-value pairs to add to the API request. This is where you provide additional information, such as the emailAddress (when grantee type is "group" or "user") or the domain (when grantee type is "domain"). Read the API docs linked below for more details.

verbose

[Deprecated] This logical argument to individual googledrive functions is deprecated. To globally suppress googledrive messaging, use options(googledrive_quiet = TRUE) (the default behaviour is to emit informational messages). To suppress messaging in a more limited way, use the helpers local_drive_quiet() or with_drive_quiet().

Value

An object of class dribble, a tibble with one row per file. There will be extra columns, shared and permissions_resource.

See also

Wraps the permissions.create endpoint:

Drive roles and permissions are described here:

Examples

# Upload a file to share
file <- drive_upload(
   drive_example("chicken.txt"),
   name = "chicken-share.txt",
   type = "document"
)
#> Local file:
#>/home/runner/work/_temp/Library/googledrive/extdata/chicken.txt
#> Uploaded into Drive file:
#>chicken-share <id: 1_Zf835dDbH-SifbB9aFGTi0VZ_gnbjNCXfjSrwc5eLQ>
#> With MIME type:
#>application/vnd.google-apps.document

# Let a specific person comment
file <- file %>%
  drive_share(
    role = "commenter",
    type = "user",
    emailAddress = "susan@example.com"
)
#> Permissions updated:
#> • role = commenter
#> • type = user
#> For file:
#>chicken-share <id: 1_Zf835dDbH-SifbB9aFGTi0VZ_gnbjNCXfjSrwc5eLQ>

# Let a different specific person edit and customize the email notification
file <- file %>%
  drive_share(
    role = "writer",
    type = "user",
    emailAddress = "carol@example.com",
    emailMessage = "Would appreciate your feedback on this!"
  )
#> Permissions updated:
#> • role = writer
#> • type = user
#> For file:
#>chicken-share <id: 1_Zf835dDbH-SifbB9aFGTi0VZ_gnbjNCXfjSrwc5eLQ>

# Let anyone read the file
file <- file %>%
  drive_share(role = "reader", type = "anyone")
#> Permissions updated:
#> • role = reader
#> • type = anyone
#> For file:
#>chicken-share <id: 1_Zf835dDbH-SifbB9aFGTi0VZ_gnbjNCXfjSrwc5eLQ>
# Single-purpose wrapper function for this
drive_share_anyone(file)
#> Permissions updated:
#> • role = reader
#> • type = anyone
#> For file:
#>chicken-share <id: 1_Zf835dDbH-SifbB9aFGTi0VZ_gnbjNCXfjSrwc5eLQ>

# Clean up
drive_rm(file)
#> File deleted:
#>chicken-share <id: 1_Zf835dDbH-SifbB9aFGTi0VZ_gnbjNCXfjSrwc5eLQ>