You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用wget从SharePoint下载Shared Documents文件夹无输出求助

解决SharePoint Shared Documents文件夹下载问题

你的wget命令存在几个关键问题,导致无输出且无法下载:

  1. Bearer令牌缺失:Authorization: Bearer 后没有填入有效的访问令牌,认证直接失败。
  2. 引号嵌套错误:命令里的单引号混用,导致URL被错误截断,wget无法识别正确的请求地址。
  3. API端点不适用:/_api/Web/GetFolderByServerRelativeUrl返回的是文件夹的JSON元数据(比如文件列表、属性),不是可直接递归下载的资源路径,wget没法通过这个端点直接拉取整个文件夹。

修复方案

方法1:用wget手动枚举并下载文件

首先需要获取有效的SharePoint访问令牌:

  • 如果你有Azure CLI,运行以下命令获取令牌:
az account get-access-token --resource https://<你的租户名>.sharepoint.com

从输出中提取accessToken字段的值。

然后分两步操作:

  1. 获取文件夹内的文件列表:
wget --no-check-certificate --header 'Authorization: Bearer <你的访问令牌>' \
  'https://(confidential).sharepoint.com/sites/<你的站点名称>/_api/Web/GetFolderByServerRelativeUrl('Shared%20Documents')/Files?$select=ServerRelativeUrl' -O files.json

这个命令会把文件列表保存为files.json。

  1. 循环下载每个文件:
    需要用jq解析JSON(先确保已安装jq),然后逐个下载:
for file_path in $(jq -r '.value[] | .ServerRelativeUrl' files.json); do
  wget --no-check-certificate --header 'Authorization: Bearer <你的访问令牌>' \
    "https://(confidential).sharepoint.com$file_path"
done

方法2:用rclone简化文件夹下载(更推荐)

wget处理SharePoint的递归下载比较繁琐,rclone有原生的SharePoint支持,操作更简单:

  1. 配置rclone:运行rclone config,选择SharePoint类型,按照提示完成站点、认证信息的配置(可以用Azure AD令牌或交互式登录)。
  2. 下载整个文件夹:
rclone copy "你的rclone远程名:Shared Documents" ./本地目标文件夹

注意事项

  • 确保你的访问令牌有Files.Read.All或Sites.Read.All的权限,否则会被拒绝访问。
  • 原命令中的-r(递归下载)参数位置错误,应该放在wget的选项开头,比如wget -r --no-check-certificate ...,但即使位置正确,原API端点也不支持递归下载。

内容的提问来源于stack exchange,提问作者user21319481

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 16:42:17