当前位置: 首页 > news >正文

【Visual Studio Code上传文件到服务器】

在 Visual Studio Code (VS Code) 中上传文件到 Linux 系统主要通过 SSH 协议实现,结合图形界面(GUI)或命令行工具操作。以下是具体说明及进度查看、断点续传的实现方法:


⚙️ 一、VS Code 上传文件到 Linux 的机制

  1. SSH 远程连接

    • VS Code 通过 Remote-SSH 扩展建立与 Linux 服务器的安全连接。
    • 文件传输基于 SSH 通道,使用 scp(Secure Copy Protocol)或类似协议封装。
  2. 图形界面拖拽上传

    • 连接远程服务器后,直接拖拽本地文件到 VS Code 的远程文件浏览器窗口,即可自动上传。
    • 适用场景:小文件快速传输(默认方式不支持断点续传)。
  3. 集成终端命令上传

    • 在 VS Code 的终端中手动执行命令(如 scprsync),支持更多高级功能(如断点续传)。

📊 二、如何查看上传进度

  1. 图形界面进度提示

    • 拖拽上传时,VS Code 右下角会显示进度通知条,包含文件名、进度百分比和传输速度。
    • 缺点:大文件传输时进度可能不够详细。
  2. 命令行工具进度显示

    • 若通过终端命令传输,可启用进度参数:
      • rsync:使用 -P(等价于 --progress --partial)实时显示进度:
        rsync -avP --partial local_file user@linux_host:/remote/path
        
      • scp:默认无进度条,需借助第三方工具(如 pv)或改用 rsync

⚡ 三、是否支持断点续传及实现方法

❌ 默认拖拽上传:不支持断点续传
  • 传输中断后需重新上传(如网络波动导致断开)。
✅ 命令行替代方案:支持断点续传

推荐使用 rsync 命令,通过 --partial 参数保留部分文件,中断后可继续传输:

  1. 文件断点续传

    rsync -avP --partial --rsh=ssh /local/path/file user@host:/remote/path
    
    • -P:显示进度并保留部分文件。
    • --partial:断点续传核心参数,避免中断后删除临时文件。
  2. 目录断点续传

    rsync -avP --partial -r --rsh=ssh /local/dir user@host:/remote/dir
    
  3. 后台运行(防 SSH 断开)
    通过 nohup& 保持传输任务:

    nohup rsync -avP --partial /local/file user@host:/remote/path &
    

🔍 四、其他断点续传工具对比

工具断点续传进度显示VS Code 集成适用场景
VS Code 拖拽✅(基础)原生支持小文件快速上传
rsync✅(详细)需手动终端输入大文件/目录可靠传输
scp需手动终端输入简单传输(无续传需求)
SFTP 扩展⚠️(部分)需安装扩展(如 SFTP)需图形化管理的场景

💡 说明

  • SFTP 扩展(如 “SFTP” by liximomo)支持 reget/rput 续传命令,但需手动触发。
  • wget/curl 适用于下载场景(-c-C - 参数)。

🛠️ 五、操作建议

  1. 小文件传输
    直接拖拽至 VS Code 远程窗口,关注右下角进度提示。
  2. 大文件/可靠性要求高
    • 打开 VS Code 集成终端,使用 rsync 命令上传。
    • 添加 -P --partial 参数确保断点续传和进度可视化。
  3. 长期任务
    结合 nohup 后台运行,避免 SSH 超时中断:
    nohup rsync -avP --partial /large_file.zip user@host:/backup/ > transfer.log &
    

💎 总结

  • 默认方式:VS Code 图形上传便捷但不支持断点续传,适合小文件。
  • 高阶需求:通过终端调用 rsync -P --partial 实现可靠的大文件续传,进度实时可见。
  • 优化建议:对大文件分卷压缩后传输,降低单次传输失败风险。

通过命令行为大文件传输增加可靠性,是平衡效率与稳定性的关键实践。

相关文章:

  • 生物实验室安全、化学品安全
  • Wpf布局之Canvas面板!
  • libevent(2)之使用教程(1)介绍
  • C++11 异步编程(3)--- packaged_task
  • nginx反向代理的bug
  • 用Flink打造实时数仓:生产环境中的“坑”与“解药”
  • 备战全国青少年信息素养大赛图形化编程复赛/省赛——绘制图形
  • [数论](a % MOD + b % MOD) % MOD = (a + b) % MOD
  • 《P1637 三元上升子序列》
  • #华为昇腾#华为计算#昇腾开发者计划2025#
  • Redis学习笔记——黑马点评 附近商铺到UV统计 完结
  • 中州养老:学会设计数据库表
  • 银行账户管理系统01
  • 图解Git中Rebase与Merge的区别
  • Linux中《动/静态库原理》
  • WireShark网络取证分析第一集到第五集和dvwa靶场环境分析漏洞
  • C++并发编程-5.C++ 线程安全的单例模式演变
  • 暑假复习篇之五子棋①
  • MongoDB06 - MongoDB 地理空间
  • Cursor 教程:用 Cursor 创建第一个 Java 项目