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


R googledrive drive_upload 上傳到新的雲端硬盤文件


將本地文件上傳到新的雲端硬盤文件中。要更新現有雲端硬盤文件的內容或元數據,請使用 drive_update() 。要上傳或更新,取決於雲端硬盤文件是否已存在,請參閱 drive_put()

用法

drive_upload(
  media,
  path = NULL,
  name = NULL,
  type = NULL,
  ...,
  overwrite = NA,
  verbose = deprecated()
)

參數

media

字符,要上傳的本地文件的路徑。

path

指定 Google 雲端硬盤上新文件的目標位置。可以是實際路徑(字符)、標有 as_id() 的文件 ID 或 dribble

如果 path 是文件夾的快捷方式,它會自動解析為其目標文件夾。

如果 path 作為路徑給出(而不是 dribble 或 id),最好通過包含尾部斜杠來明確指示它是否是文件夾,因為它不能總是從文件夾的上下文中計算出來。稱呼。默認情況下,該文件創建在當前用戶的"My Drive"根文件夾中。

name

字符,如果未指定為 path 的一部分,則為新文件名。這將強製 path 被解釋為文件夾,即使它是字符並且缺少尾部斜杠。默認為文件的本地名稱。

type

特點。如果是 type = NULL ,則如果可能,將根據文件擴展名自動確定 MIME 類型。如果源文件的類型合適,您可以通過將 type 分別設置為 documentspreadsheetpresentation 來請求轉換為 Google 文檔、表格或幻燈片。 type 的所有非 NULL 值均使用 drive_mime_type() 進行預處理。

...

要傳遞到 Drive API 的命名參數。具有dynamic dots 語義。您可以通過 ... 指定文件資源的屬性來影響目標文件的元數據。閱讀關聯端點的 Drive API 文檔的"Request body" 部分,了解相關參數。

overwrite

邏輯,指示是否檢查目標"filepath"處是否存在預先存在的文件。 "filepath" 周圍的引號是指 Drive 不會像典型的文件係統那樣在文件路徑和文件之間強加一對一的關係;在 drive_get() 中了解更多相關信息。

  • NA(默認):隻需執行該操作,即使它會導致多個文件具有相同的文件路徑。

  • TRUE :檢查文件路徑中是否存在預先存在的文件。如果有零個或一個,請將預先存在的文件移至箱子,然後繼續。請注意,新文件不會繼承舊文件的任何屬性,例如共享或發布設置。它將有一個新的文件 ID。如果找到兩個或多個預先存在的文件,則會引發錯誤。

  • FALSE:如果文件路徑中存在任何預先存在的文件,則會出錯。

請注意,基於文件路徑的存在性檢查是昂貴的操作,即它們需要額外的 API 調用。

verbose

[Deprecated]這種對各個 googledrive 函數的邏輯論證已被棄用。要全局禁止 googledrive 消息傳遞,請使用options(googledrive_quiet = TRUE)(默認行為是發出信息性消息)。要以更有限的方式抑製消息傳遞,請使用幫助程序local_drive_quiet()或者with_drive_quiet().

dribble 類的對象,每個文件一行的 tibble。

也可以看看

例子

# upload a csv file
chicken_csv <- drive_example_local("chicken.csv") %>%
  drive_upload("chicken-upload.csv")
#> Local file:
#> • /home/runner/work/_temp/Library/googledrive/extdata/example_files/chicken.csv
#> Uploaded into Drive file:
#> • chicken-upload.csv <id: 19EjeIJ37ButQwJX3LonH-oXflKlEiyE7>
#> With MIME type:
#> • text/csv

# or convert it to a Google Sheet
chicken_sheet <- drive_example_local("chicken.csv") %>%
  drive_upload(
    name = "chicken-sheet-upload.csv",
    type = "spreadsheet"
  )
#> Local file:
#> • /home/runner/work/_temp/Library/googledrive/extdata/example_files/chicken.csv
#> Uploaded into Drive file:
#> • chicken-sheet-upload <id: 123d2h3zO8MOmWVQU8ZtCAlxyh3Sssr30_TiHtnafFEc>
#> With MIME type:
#> • application/vnd.google-apps.spreadsheet

# check out the new Sheet!
drive_browse(chicken_sheet)

# Clean up
drive_find("chicken.*upload") %>% drive_rm()
#> Files deleted:
#> • chicken-sheet-upload <id: 123d2h3zO8MOmWVQU8ZtCAlxyh3Sssr30_TiHtnafFEc>
#> • chicken-upload.csv <id: 19EjeIJ37ButQwJX3LonH-oXflKlEiyE7>

# Upload a file and, at the same time, star it
chicken <- drive_example_local("chicken.jpg") %>%
  drive_upload(starred = "true")
#> Local file:
#> • /home/runner/work/_temp/Library/googledrive/extdata/example_files/chicken.jpg
#> Uploaded into Drive file:
#> • chicken.jpg <id: 17fzCAJZ1NMlfROdyxo5Zg93HSrSEfDvZ>
#> With MIME type:
#> • image/jpeg

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

# Clean up
drive_rm(chicken)
#> File deleted:
#> • chicken.jpg <id: 17fzCAJZ1NMlfROdyxo5Zg93HSrSEfDvZ>

# `overwrite = FALSE` errors if something already exists at target filepath
# THIS WILL ERROR!
drive_create("name-squatter-upload")
#> Created Drive file:
#> • name-squatter-upload <id: 1hcq03S94nCHCNDBLAXBWOJ_g8Y9nrtS2>
#> With MIME type:
#> • application/octet-stream
drive_example_local("chicken.jpg") %>%
  drive_upload(
    name = "name-squatter-upload",
    overwrite = FALSE
  )
#> Error in check_for_overwrite(params[["parents"]], params[["name"]], overwrite): 1 item already exists at the target filepath and `overwrite =
#> FALSE`:
#> • name-squatter-upload <id: 1hcq03S94nCHCNDBLAXBWOJ_g8Y9nrtS2>

# `overwrite = TRUE` moves the existing item to trash, then proceeds
chicken <- drive_example_local("chicken.jpg") %>%
  drive_upload(
    name = "name-squatter-upload",
    overwrite = TRUE
  )
#> File trashed:
#> • name-squatter-upload <id: 1hcq03S94nCHCNDBLAXBWOJ_g8Y9nrtS2>
#> Local file:
#> • /home/runner/work/_temp/Library/googledrive/extdata/example_files/chicken.jpg
#> Uploaded into Drive file:
#> • name-squatter-upload <id: 1EscWJkhsEFFWv5iopa-znxa86Bt02WyN>
#> With MIME type:
#> • image/jpeg

# Clean up
drive_rm(chicken)
#> File deleted:
#> • name-squatter-upload <id: 1EscWJkhsEFFWv5iopa-znxa86Bt02WyN>

if (FALSE) {
# Upload to a shared drive:
#   * Shared drives are only available if your account is associated with a
#     Google Workspace
#   * The shared drive (or shared-drive-hosted folder) MUST be captured as a
#     dribble first and provided via `path`
sd <- shared_drive_get("Marketing")
drive_upload("fascinating.csv", path = sd)
}
源代碼:R/drive_upload.R

相關用法


注:本文由純淨天空篩選整理自Jennifer Bryan等大神的英文原創作品 Upload into a new Drive file。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。