如何使用 R 高效地从 SharePoint 下载多个文件

问题描述 投票:0回答:1

我有一个 Excel 文件,其中包含我打算下载的 10,000 多个文档(PDF 和 Word 文档)的列表。每个文件都链接到一个 SharePoint URL。

我的目标是在 R 中设计一个脚本,可以自动访问和下载这些文档。

我尝试了以下操作,但导致下载损坏。

library(readxl)
library(httr) 

data <- read_excel("data/in/doclist.xlsx")
urls <- data$url

for (url in urls) {
  # Send a GET request to the URL
  response <- GET(url)
  
  # Extract the file name from the URL
  file_name <- basename(url)
  
  # Specify the path where you want to save the downloaded files
  save_path <- paste0("data/out/", file_name)
  
  # Save the downloaded file
  writeBin(content(response), save_path)
  
  # Print a message to indicate the successful download
  cat("File", file_name, "downloaded successfully.\n")
}

我无法打开下载的文档(“Word 在尝试打开文件时遇到错误”和“Adobe Acrobat Reader 无法打开 xyz,因为它不是受支持的文件类型或文件已损坏”)。

我怀疑该问题可能是由于在 SharePoint 上访问这些文档的双因素身份验证要求造成的。当尝试下载可公开访问的 PDF 时,代码运行顺利,允许我打开下载的文件。此外,我可以在 SharePoint 中单独访问这些文档,因为我拥有必要的登录凭据。

任何指导或替代方法都将不胜感激。预先感谢您。

r sharepoint httr two-factor-authentication
1个回答
0
投票

这里有两种可以考虑的方法:

#Approch 1
library(RDCOMClient)
FSO <- COMCreate("scripting.filesystemobject")

FromPath <- "//sharepoint.xxx/xxx/xxx/test.docx"
ToPath <- "C:\\xxx\\test.docx"
FSO$CopyFile(FromPath, ToPath)
#Approch 2
library(RDCOMClient)
FSO <- COMCreate("scripting.filesystemobject")

FromPath <- "//sharepoint.xxx/xxx/xxx/test.docx"
ToPath <- "C:\\xxx\\test.docx"
FSO$CopyFile(FromPath, ToPath)
© www.soinside.com 2019 - 2024. All rights reserved.