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


R googledrive drive_cp 複製雲端硬盤文件


將現有的雲端硬盤文件複製到新的文件 ID 中。

用法

drive_cp(
  file,
  path = NULL,
  name = NULL,
  ...,
  overwrite = NA,
  verbose = deprecated()
)

參數

file

識別您的 Google 雲端硬盤上感興趣的文件的內容。可以是名稱或路徑、標有 as_id()dribble 的文件 ID 或 URL。

path

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

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

如果 path 作為路徑給出(而不是 dribble 或 id),最好通過包含尾部斜杠來明確指示它是否是文件夾,因為它不能總是從文件夾的上下文中計算出來。稱呼。默認情況下,新文件與源文件具有相同的父文件夾。

name

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

...

要傳遞到 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。

也可以看看

例子

# Target one of the official example files
(src_file <- drive_example_remote("chicken.txt"))
#> # A dribble: 1 × 3
#>   name        id                                drive_resource   
#>   <chr>       <drv_id>                          <list>           
#> 1 chicken.txt 1wOLeWVRkTb6lDmLRiOhg9iKM7DlN762Y <named list [38]>

# Make a "Copy of" copy in your My Drive
cp1 <- drive_cp(src_file)
#> Original file:
#> • chicken.txt <id: 1wOLeWVRkTb6lDmLRiOhg9iKM7DlN762Y>
#> Copied to file:
#> • Copy of chicken.txt <id: 13C0IFBlHKUr-Ch07Vxwr9RzKnDfjcd4X>

# Make an explicitly named copy, in a different folder, and star it.
# The starring is an example of providing metadata via `...`.
# `starred` is not an actual argument to `drive_cp()`,
# it just gets passed through to the API.
folder <- drive_mkdir("drive-cp-folder")
#> Created Drive file:
#> • drive-cp-folder <id: 13e7tYB6Sxqt-BBLwNH7q97gLZAVNaWLN>
#> With MIME type:
#> • application/vnd.google-apps.folder
cp2 <- drive_cp(
  src_file,
  path = folder,
  name = "chicken-cp.txt",
  starred = TRUE
)
#> Original file:
#> • chicken.txt <id: 1wOLeWVRkTb6lDmLRiOhg9iKM7DlN762Y>
#> Copied to file:
#> • drive-cp-folder/chicken-cp.txt <id: 1f1emvuybwQhIBgfMEdvbNWsjvOVzpdN3>
drive_reveal(cp2, "starred")
#> # A dribble: 1 × 4
#>   name           starred id                                drive_resource
#>   <chr>          <lgl>   <drv_id>                          <list>        
#> 1 chicken-cp.txt TRUE    1f1emvuybwQhIBgfMEdvbNWsjvOVzpdN3 <named list>  

# `overwrite = FALSE` errors if file already exists at target filepath
# THIS WILL ERROR!
# drive_cp(src_file, name = "Copy of chicken.txt", overwrite = FALSE)

# `overwrite = TRUE` moves an existing file to trash, then proceeds
cp3 <- drive_cp(src_file, name = "Copy of chicken.txt", overwrite = TRUE)
#> File trashed:
#> • Copy of chicken.txt <id: 13C0IFBlHKUr-Ch07Vxwr9RzKnDfjcd4X>
#> Original file:
#> • chicken.txt <id: 1wOLeWVRkTb6lDmLRiOhg9iKM7DlN762Y>
#> Copied to file:
#> • Copy of chicken.txt <id: 11QbIifQr9rpUFA8hPlB8jIQoECmRawVA>

# Delete all of our copies and the new folder!
drive_rm(cp1, cp2, cp3, folder)
#> Files deleted:
#> • Copy of chicken.txt <id: 13C0IFBlHKUr-Ch07Vxwr9RzKnDfjcd4X>
#> • chicken-cp.txt <id: 1f1emvuybwQhIBgfMEdvbNWsjvOVzpdN3>
#> • Copy of chicken.txt <id: 11QbIifQr9rpUFA8hPlB8jIQoECmRawVA>
#> • drive-cp-folder <id: 13e7tYB6Sxqt-BBLwNH7q97gLZAVNaWLN>

# Target an official example file that's a csv file
(csv_file <- drive_example_remote("chicken.csv"))
#> # A dribble: 1 × 3
#>   name        id                                drive_resource   
#>   <chr>       <drv_id>                          <list>           
#> 1 chicken.csv 1VOh6wWbRfuQLxbLg87o58vxJt95SIiZ7 <named list [37]>

# copy AND AT THE SAME TIME convert it to a Google Sheet
chicken_sheet <- drive_cp(
  csv_file,
  name = "chicken-sheet-copy",
  mime_type = drive_mime_type("spreadsheet")
)
#> Original file:
#> • chicken.csv <id: 1VOh6wWbRfuQLxbLg87o58vxJt95SIiZ7>
#> Copied to file:
#> • chicken-sheet-copy <id: 1-CFVX3pNimDq1Wsu4tLZfaEQXFQZATbM9rnE9oSCWQs>
# is it really a Google Sheet?
drive_reveal(chicken_sheet, "mime_type")$mime_type
#> [1] "application/vnd.google-apps.spreadsheet"

# go see the new Sheet in the browser
# drive_browse(chicken_sheet)

# Clean up
drive_rm(chicken_sheet)
#> File deleted:
#> • chicken-sheet-copy <id: 1-CFVX3pNimDq1Wsu4tLZfaEQXFQZATbM9rnE9oSCWQs>
源代碼:R/drive_cp.R

相關用法


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