使用Graph API创建SharePoint上传会话后上传文件偶现连接关闭错误
可能成因
- 上传分片规则不符合要求:Microsoft Graph API要求上传分片大小必须是320KiB的整数倍,若分片大小不满足该规则,仅在偏移量偶然对齐的场景下可上传成功,其余场景会被服务端主动切断连接
- 服务端限流触发:SharePoint和Graph API对上传操作有动态速率限制规则,短时间内大量上传请求、分片上传频率过高时,服务端会直接中断连接,限流规则随时间段负载调整,会出现特定时段可正常运行的情况
- 上传会话过期:创建的uploadsession默认有效期为15分钟,若上传启动时间距离会话创建时间过长,会话失效后服务端会主动拒绝请求
- 网络中间节点管控:内网代理、防火墙可能配置了分时段的流量管控规则,非高峰时段允许大文件长连接传输,高峰时段会主动切断大流量上传连接
- 上传请求头参数错误:上传阶段缺少Content-Range、Content-Length等必填请求头,或参数值计算错误,仅在参数偶然正确时可上传成功,错误时服务端直接中断连接
解决方案
- 严格遵循分片规则:固定分片大小为320KiB的整数倍,大文件推荐使用4MiB分片,每次分片上传前准确计算Content-Range和Content-Length参数值
- 增加断点重试逻辑:遇到连接断开错误时,采用指数退避策略重试,重试前先查询当前已上传的分片偏移量,从断点处继续上传,避免全量重传
- 管控上传会话有效期:创建uploadsession后立即启动上传流程,若上传中断超过10分钟,先重新创建新的上传会话再继续后续上传操作
- 排查网络中间节点规则:确认本地网络、代理、防火墙是否存在针对SharePoint相关域名的流量限制规则,上传时禁用不必要的代理,或将相关域名加入流量白名单
- 控制上传速率:限制同一时间的并发上传任务数,单文件分片上传间隔不小于1秒,避免触发服务端限流规则
内容的提问来源于stack exchange,提问作者Stijn
相关产品推荐
相关产品推荐

