0%

webshell实现sz/rz上传下载

最近在支持webshell的上传下载,做了sz/rz的调研开发,这里总结下

使用说明

  1. sz支持多文件下载

  2. rz支持多文件上传,上传目标目录为当前命中执行目录,

  3. rz不支持文件夹上传

  4. rz上传针对重名文件,不会执行上传也不报错

  5. 针对体积大小,无法传输大于 4G 的文件

  6. 下载中/上传中并不能直接取消,但如果想实现,断掉连接之后在重新连接是个办法

SZ/RZ支持问题

  1. 服务器默认是没有安装 lrzsz 工具的,需要手动安装
  2. 不是所有工具都支持 rz 与 sz,必须支持 ZModem 协议才行
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Centos
yum -y install lrzsz
# 卸载
yum -y remove lrzsz

# Ubuntu
apt install -y lrzsz
# 卸载
apt remove -y lrzsz

# MacOS
brew install lrzsz
# 卸载
brew remove lrzsz

判断命令是否安装可以使用which

FGasper/xterm.js demo运行

为了保证demo正常运行,需要以下操作

  1. demo地址:https://github.com/FGasper/xterm.js/tree/zmodem
  2. node版本切换到v8重新执行npm i
  3. 启动后访问http://127.0.0.1:3000/

demo

webshell支持大概操作如下

1
npm i zmodem.js

有价值的资料

  1. https://juejin.cn/post/6935621453400244260
  2. https://wsgzao.github.io/post/lrzsz/
  3. https://qa.1r1g.com/sf/ask/672770031/