批量传输

大批量传输的三件事并发太高反而更慢

一次传几百上千个文件,和传单个文件的思路不一样:重点是控制并发、减少重复传、让失败可恢复。

下面三件事按重要性排列。

并发限制目录比较失败重试覆盖规则

三件事

顺序就是重要性顺序

🚦

限制并发连接

多数服务器对单账号连接数有限制,超了会被拒绝甚至临时封禁,把并发调到两三个更稳。

🔍

目录比较

先比较本地与远程目录,只把新增和修改过的文件排进队列,省掉大量重复传输。

♻️

失败任务单独重试

失败的任务留在队列里,网络恢复后单独重试,不必整体重传。

📋

覆盖规则预先设

提前定好同名文件是覆盖、跳过还是改名,避免传到一半停下来问你。

大批量传输的步骤

  1. 先在站点设置里降并发

    把连接数调到较低值,尤其服务器有连接限制时。

  2. 做一次目录比较

    筛出需要传的文件,结果可以直接加入队列。

  3. 设置覆盖规则

    明确同名文件怎么处理。

  4. 启动队列

    让它自己跑,中途尽量不要同时开其他占带宽的任务。

  5. 检查失败项

    跑完看队列里剩下的失败任务,逐个重试。

传输变慢的可能原因

先看是不是并发设置的问题
原因表现处理
并发过高被限速速度忽快忽慢甚至中断降低并发连接数
小文件过多总耗时远超预期先打包上传再解压
服务器磁盘繁忙速度长时间很低换时段再传
本地磁盘读取慢上传速度上不去确认本地盘状态
网络抖动频繁重连改用有线或换网络
加密开销速度略低于普通协议正常现象,安全优先

小文件多的时候先打包

建立连接的开销比传输本身大

传一千个小文件,大部分时间花在建立连接和等待响应上,而不是传输数据。

先在本机打包成一个压缩文件传上去,再在服务器上解开,总耗时常能减少一大半。

批量传输疑问

传输中途能暂停吗?

可以暂停并保留队列,网络恢复后继续。

断点续传一定有效吗?

取决于服务器是否支持,不支持时该文件需要重传。

怎么确认传上去的文件完整?

对比文件体积,有条件的话比对校验值更可靠。

能定时传输吗?

客户端本身不带定时功能,需要配合系统计划任务。

队列能保存下来吗?

可以保存队列文件,下次导入继续用。

覆盖前想清楚:上传目录若勾选了删除多余文件之类的选项,可能把服务器上原有的内容一并清掉,先在测试目录试一次。