upload_on_save频繁触发上传是因为它纯事件驱动,每次Ctrl+S就发送请求,既无防抖也无队列控制;真正可控的方案是关闭该功能,改用手动上传或结合sync_down_on_open使用,并确保ignore_regexes配置正确。

upload_on_save 为什么频繁触发上传?
这不是插件“限制频率”没做好,而是它根本没做频率控制——upload_on_save 是纯事件驱动:每次 Ctrl+S 就调一次上传,不管文件是否真有改动、也不管上一次是否还在跑。你改一行保存三次,就发三次 SFTP 请求;网络卡住时还可能堆积失败任务,但插件不报错、不重试、不排队,只静默跳过或报 Connection timed out。
真正能压住上传节奏的只有三个地方
别指望插件加个“防抖”开关,它没这功能。可行路径只有:
-
关掉
upload_on_save,改用手动上传:右键 →SFTP → Upload File,自己掌握节奏 -
用
sync_down_on_open+ 手动上传组合:打开文件时自动拉最新版,编辑完再决定要不要传——避免边改边传的冗余 -
在服务器端设反向保护:比如 Nginx 配置
limit_req拦异常高频 PUT 请求(虽不治本,但能防误操作刷爆日志)
sftp-config.json 里哪些字段看似相关实则无效
有人试过加 throttle、rate_limit、delay_ms 这类字段,全都没用。SFTP 插件(wbond 版)根本不识别这些 key,配置后既不报错也不生效,属于白写。
唯一影响“感知频率”的是 timeout 和 connect_timeout:设太小(如 "timeout": 2)会导致上传中途断掉,看起来像“没传那么勤”,其实是失败率高;设太大(如 "timeout": 30)又会让卡住的操作迟迟不释放,反而更堵。
最常被忽略的上传放大器:ignore_regexes 匹配失效
你以为关了 upload_on_save 就安全了?错。只要配置了 sync_down_on_open,打开任意文件都会触发一次下载;而如果你的 ignore_regexes 写错了(比如写了 "\.log$" 却漏了 "logs/"),插件就会把整个 logs/ 目录当成要同步的文件夹,一开项目就扫几百个文件——表面没上传,实际在后台狂建连接。
检查方式很简单:Sublime Text → View → Show Console,上传时看输出里有没有大量 Uploading xxx 或 Downloading xxx 日志。有,说明 ignore 没起作用。


















