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

如何通过AWS CLI高效将S3文件直接传输至SFTP?

高效将AWS S3文件直接传输至SFTP的解决方案

原命令管道中断的原因

你之前用的单文件管道传输方式,依赖sftp的交互式会话,这类会话在网络波动、文件较大时容易因超时或连接不稳定中断;同时该方式无法批量处理数百个文件,效率低下。

方案1:循环+稳定SFTP参数批量传输

通过遍历S3文件列表,逐个流式传输并加密,同时给sftp添加连接稳定参数:

aws s3 ls s3://your-bucket/ --recursive | grep -v "^PRE" | awk '{print $4}' | while read filename; do
  aws s3 cp s3://your-bucket/"$filename" - | gpg --encrypt --recipient gg@decrpt.com | sftp -o BatchMode=yes -o ServerAliveInterval=15 -o ConnectTimeout=30 account@hostname.com:/data/sample_data/"$filename".gpg
done
  • BatchMode=yes:禁用交互式密码提示,避免会话卡住
  • ServerAliveInterval=15:每15秒发送保活包,防止连接被远端断开
  • ConnectTimeout=30:设置连接超时时间,避免无限等待

方案2:用lftp实现自动重连的流式传输

lftp对SFTP连接的稳定性更好,支持自动重连,适合批量大文件传输:

# 密钥登录版本
aws s3 ls s3://your-bucket/ --recursive | grep -v "^PRE" | awk '{print $4}' | while read filename; do
  aws s3 cp s3://your-bucket/"$filename" - | gpg --encrypt --recipient gg@decrpt.com | lftp -e "set sftp:connect-program 'ssh -i /path/to/your/private-key'; put -o /data/sample_data/"$filename".gpg -; exit" sftp://account@hostname.com
done

# 密码登录版本(不推荐,建议用密钥)
aws s3 ls s3://your-bucket/ --recursive | grep -v "^PRE" | awk '{print $4}' | while read filename; do
  aws s3 cp s3://your-bucket/"$filename" - | gpg --encrypt --recipient gg@decrpt.com | lftp -e "put -o /data/sample_data/"$filename".gpg -; exit" sftp://account:your-password@hostname.com
done

lftp会自动处理连接中断后的重连,无需手动干预,大幅提升批量传输的可靠性。

方案3:并行传输提升效率(适合多核/高带宽环境)

用GNU Parallel实现多文件同时传输,最大化利用带宽:

aws s3 ls s3://your-bucket/ --recursive | grep -v "^PRE" | awk '{print $4}' | parallel -j 8 'aws s3 cp s3://your-bucket/{} - | gpg --encrypt --recipient gg@decrpt.com | sftp -o BatchMode=yes -o ServerAliveInterval=15 account@hostname.com:/data/sample_data/{}.gpg'
  • -j 8:同时处理8个文件,可根据网络带宽和服务器负载调整数值(建议从5开始测试)
  • 需提前安装GNU Parallel(apt install parallel或brew install parallel)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 23:55:25