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

GitHub Actions中使用lftp镜像SFTP文件失败的问题求助

问题解决:GitHub Action中lftp mirror命令路径错误导致上传失败

问题根源

你的lftp命令里,mirror参数顺序搞反了。当使用-R(反向镜像,本地→远程)时,mirror的正确语法是:

mirror -R [本地源路径] [远程目标路径]

你只指定了$REMOTE_PATH,没有明确本地路径,lftp会默认把$REMOTE_PATH当成本地路径去查找,这就是为什么报错会指向Runner的/github/workspace/test——它在本地工作目录里找远程路径对应的文件夹,自然找不到。

修复后的命令

把本地路径(当前工作目录,用.表示)加到mirror命令里,放在$REMOTE_PATH前面:

lftp -d -c "set ftp:ssl-allow no; open -u $SFTP_USER,placeholder -e 'mirror -R --delete --only-newer --exclude-glob .git/ --exclude-glob .github/ -P1 --parallel=10 -x changed_files.txt . \"$REMOTE_PATH\"' $SFTP_HOST"

注意点:

  • 用.代表当前本地工作目录(也就是GitHub Runner的/github/workspace)
  • 给$REMOTE_PATH加上双引号,避免路径包含特殊字符时出错
  • 如果远程服务器上的$REMOTE_PATH不存在,可以加上--create参数让lftp自动创建目录:mirror -R --create ...

额外检查项

  • 确认远程服务器上$SFTP_USER对目标路径/home/username/test/有读写权限
  • 验证changed_files.txt里的路径都是相对于本地工作目录的正确路径

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 07:55:00