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

Jenkins流水线Curl上传SharePoint超时(Curl 28)求助

解决Jenkins流水线中Curl上传Zip到SharePoint超时的问题

我之前也碰到过类似的Jenkins流水线里curl上传大文件超时的情况,结合你的描述(GET请求正常、外部curl能跑通但流水线里不行),给你几个实用的排查和解决方向:

1. 排查Jenkins Agent的网络环境差异

虽然GET请求能正常执行,但POST上传大文件可能触发不同的网络限制:

  • 先在Jenkins运行该流水线的Agent机器上,手动执行一遍那个POST curl命令,确认Agent环境下是否能正常上传——有时候本地机器和Agent的防火墙、代理规则完全不同,Agent可能被SharePoint侧限制了大文件上传的流量或速率。
  • 如果Agent是容器化的,还要检查容器的网络策略,比如是否有端口转发限制、带宽配额等。

2. 调整Curl的超时与上传参数

默认的curl超时设置可能不足以支撑大文件上传,你可以手动扩展超时时间,并添加一些兼容性参数:

sh "curl -X POST 'http://00.0.0.00:0000/sharepoint?relativePath=Shared%20Documents%2FService%20Docs%2Fv9.0&teamSite=Web%20Services' \
-H 'accept: */*' \
-H 'Content-Type: multipart/form-data' \
-F 'file=@Test Tracer Web Services - Interface Specification v9.0.zip;' \
--connect-timeout 600 \
--max-time 1200 \
--disable-eprt"
  • --connect-timeout 600:设置连接超时为600秒(10分钟)
  • --max-time 1200:设置整个请求的最大耗时为1200秒(20分钟)
  • --disable-eprt:关闭某些可能导致传输卡住的FTP扩展协议,部分服务器对这些扩展支持不佳

3. 验证Jenkins流水线的执行环境

流水线的sh步骤可能和你本地的shell环境有差异:

  • 先检查Agent上的curl版本:在流水线里添加sh "curl --version",对比本地的curl版本,旧版本的curl在处理multipart大文件上传时可能存在bug。
  • 确认zip文件的路径和权限:在POST命令前添加sh "ls -la 'Test Tracer Web Services - Interface Specification v9.0.zip'",确保文件存在于Jenkins workspace中,且Agent有读取权限。

4. 尝试替代方案:使用Jenkins插件或其他脚本

如果curl的问题始终无法解决,可以换更稳定的方式:

  • 使用Jenkins的SharePoint Plugin,它专门针对SharePoint的文件操作做了优化,比手动写curl更可靠。
  • 如果是Windows Agent,可以用PowerShell调用SharePoint的REST API上传文件,PowerShell在处理Windows环境下的网络请求和文件操作时兼容性更好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:17:28