Uploads a local file into a new Drive file. To update the content or metadata of an existing Drive file, use drive_update().

drive_upload(media, path = NULL, name = NULL, type = NULL, ...,
  verbose = TRUE)



Character, path to the local file to upload.


Specifies target destination for the new file on Google Drive. Can be an actual path (character), a file id marked with as_id(), or a dribble. If specified as an actual path, it is best to explicitly indicate if it's a folder by including a trailing slash, since it cannot always be worked out from the context of the call. Will default to its local name.


Character, new file name if not specified as part of path. This will force path to be treated as a folder, even if it is character and lacks a trailing slash. Will default to its local name.


Character. If type = NULL, a MIME type is automatically determined from the file extension, if possible. If the source file is of a suitable type, you can request conversion to Google Doc, Sheet or Slides by setting type to document, spreadsheet, or presentation, respectively. All non-NULL values for type are pre-processed with drive_mime_type().


Named parameters to pass along to the Drive API. You can affect the metadata of the target file by specifying properties of the Files resource via .... See the "Request body" section of the Drive API docs for the associated endpoint.


Logical, indicating whether to print informative messages (default TRUE).


An object of class dribble, a tibble with one row per item.

See also

Wraps the files.create endpoint:

MIME types that can be converted to native Google formats:


## upload a csv file
chicken_csv <- drive_upload(

## or convert it to a Google Sheet
chicken_sheet <- drive_upload(
  name = "chicken-sheet-upload.csv",
  type = "spreadsheet"

## check out the new Sheet!

## clean-up
drive_find("chicken.*upload") %>% drive_rm()

## Upload a file and, at the same time, star it
chicken <- drive_upload(
  starred = "true"

## Is is really starred? YES
purrr::pluck(chicken, "drive_resource", 1, "starred")

## Clean up

## Upload to a Team Drive:
##   * your Google account must have Team Drive privileges, obviously
##   * the Team Drive (or Team Drive-hosted folder) MUST be captured as a
##     dribble first and provided via `path`
td <- team_drive_get("Marketing")
drive_upload("fascinating.csv", path = td)
# }