0%

webshell实现sz/rz上传下载

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

使用说明

首先了解下szrz功能

  1. sz支持多文件下载

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

  3. rz不支持文件夹上传

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

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

  6. 下载中/上传中支持取消

szrz系统支持

  1. 服务器默认是没有安装 lrzsz 工具的,需要手动安装
  2. 不是所有工具都支持 rz 与 sz,必须支持 ZModem 协议才行
1
2
3
4
5
6
7
# MacOS
brew install lrzsz
# 卸载
brew remove lrzsz

## 跨平台安装脚本
sudo sh -c "$(curl -fsSL https://gist.githubusercontent.com/alanhg/6a299b815f4dd3d242abc16b8be6b861/raw/dbe1497208f1d968ed8b67cad09c596e35c5be9c/install-package-lrzsz.sh)"

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/