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

如何使用SPFX或SharePoint REST API向SharePoint Online上传10GB/50GB大文件

SharePoint Online 10GB/50GB大文件上传方案说明

上传能力确认

完全可以使用SPFX File Upload相关组件或者SharePoint REST API上传10GB、50GB级别的大文件,当前SharePoint Online单文件上传上限为250GB,你的需求完全在官方限制范围内。

分片上传要求

10GB、50GB级别的大文件必须采用分片上传方案,不支持单请求直接上传:

  • 单文件大小超过250MB时,单请求上传会触发超时、请求体超限等错误,必须拆分成分片逐个上传
  • 分片上传支持断点续传,某一片传输失败仅需要重传对应分片,不需要重新上传整个文件,大幅提升大文件上传成功率

分片大小规范

SharePoint Online对分片大小的要求如下:

  • 单分片支持的大小范围为256KB ~ 250MB
  • 推荐设置分片大小为10MB ~ 100MB区间:网络稳定的场景可以选更大的分片减少请求次数,网络波动大的场景选更小的分片降低重传成本
  • 最后一个分片不受256KB下限限制,可小于该值

具体实现方案

基于SPFX实现

推荐直接使用@pnp/sp库封装的分片上传能力,不需要手动处理分片拆分、会话维护、合并逻辑:

import { sp } from "@pnp/sp";
import "@pnp/sp/files";

// 选择的待上传文件对象
const targetFile = document.getElementById("uploadFileInput").files[0];
// 分片大小设置为50MB,可自行调整
const chunkSize = 1024 * 1024 * 50;

// 调用分片上传方法
const uploadResult = await sp.web
  .getFolderByServerRelativePath("/sites/你的站点地址/目标文档库路径")
  .files.addChunked(
    targetFile.name,
    targetFile,
    (progressInfo) => {
      // 可自定义进度展示逻辑
      console.log(`当前上传进度:${progressInfo.progress}%`);
    },
    true, // 重名文件是否覆盖
    chunkSize
);

如果是用SPFX自带的FilePicker组件,只需要开启大文件上传配置即可,组件会自动处理分片逻辑。

基于原生SharePoint REST API实现

如果需要自行调用REST API实现,流程如下:

  1. 调用createUploadSession接口创建上传会话,获取专属的上传端点
  2. 按预设分片大小拆分本地文件,逐个上传分片,每个请求需要在请求头中声明当前分片对应整个文件的字节范围
  3. 所有分片上传完成后,SPO会自动合并所有分片为完整文件,上传会话自动失效

注意:上传会话的有效期为24小时,超过24小时未完成全部分片上传,会话会自动过期,需要重新创建会话上传。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 19:09:04