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

Azure Pipeline CopyFilesOverSSH@0报错‘seek 32768 not supported...’求解决

解决方案

一、调整CopyFilesOverSSH@0任务参数的方法

你不需要修改服务连接,直接在YAML的inputs中添加blockSize和concurrency参数即可控制传输的块大小和并发数,这两个参数属于任务本身的配置,和服务连接无关。

修改后的YAML示例:

- task: CopyFilesOverSSH@0
  displayName: taskUI
  inputs:
    sshEndpoint: c715e647-409c-4971-84ac-80b1a07e2049
    sourceFolder: /home/vsts/work/1/s/deploy/taskUI
    contents: '*.zip'
    targetFolder: /Inbox
    failOnEmptySource: true
    blockSize: 1024  # 根据实际情况调整,比如1024、2048等
    concurrency: 1    # 强制设置并发数为1,适配IBM目标服务器

说明:blockSize单位为KB,你可以逐步测试合适的数值,确保传输稳定。

二、Azure托管代理用Bash连接FTP的方案

Azure托管代理预装了lftp工具,支持用户名/密码认证的FTP传输,无需额外安装依赖。

步骤1:配置凭证变量

将FTP的用户名和密码添加到Pipeline的变量组或管道变量中(勾选“保密”选项隐藏明文),比如命名为FTP_USERNAME和FTP_PASSWORD。

步骤2:添加Bash上传任务

在YAML中添加Bash任务,使用lftp命令完成上传:

- task: Bash@3
  displayName: Upload via FTP
  inputs:
    targetType: 'inline'
    script: |
      # 上传目标文件夹下的zip文件
      lftp -u $(FTP_USERNAME),$(FTP_PASSWORD) ftp://你的FTP服务器地址 -e "
      set ftp:ssl-allow no;  # 目标FTP支持SSL则改为yes
      cd /Inbox;  # 切换到远程目标文件夹
      put /home/vsts/work/1/s/deploy/taskUI/*.zip;  # 上传本地文件
      quit
      "

说明:如果目标是SFTP服务器,只需将ftp://替换为sftp://即可,lftp同样支持SFTP协议。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 06:55:21