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

使用REST API与CURL向SharePoint Online上传本地文件遇阻求助

解决SharePoint Online REST API通过curl上传本地文件的问题

你当前的命令只手动设置了Content-Length,但没有把本地文件的内容作为请求体传递给API,这就是上传失败的核心原因。SharePoint服务器接收到请求后找不到文件数据,自然无法创建对应文件。

正确的curl上传命令

使用--data-binary参数让curl读取本地文件内容并作为请求主体发送,无需手动设置Content-Length(curl会自动计算并添加正确的请求头):

curl -X POST -i -H "Authorization: Bearer tokenabc" --data-binary "@/tmp/a.txt" "https://tenant.sharepoint.com/teams/testSite/_api/web/GetFolderByServerRelativeUrl('Shared Documents')/Files/add(url='a.txt',overwrite=true)"

如果你已经进入/tmp目录,可以简化路径:

curl -X POST -i -H "Authorization: Bearer tokenabc" --data-binary "@a.txt" "https://tenant.sharepoint.com/teams/testSite/_api/web/GetFolderByServerRelativeUrl('Shared Documents')/Files/add(url='a.txt',overwrite=true)"

关键说明

  • --data-binary "@文件路径" 是上传本地文件内容的核心,它会完整读取文件的二进制数据并发送给服务器。
  • 不要手动指定Content-Length,如果手动设置的数值和文件实际大小不匹配,会导致服务器解析请求失败。
  • URL中的%20Shared%20Documents可以直接写成'Shared Documents',curl会自动处理URL编码,提升命令可读性。

额外注意事项

  • 确保你的Bearer token拥有目标文档库(Shared Documents)的编辑权限,否则会返回权限错误。
  • 如果上传大文件(超过几MB),建议使用SharePoint的分片上传API,但针对小文件,上述命令完全适用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 20:47:07