node-transfer

🚀 零内存开销的极速文件传输

OpenClaw 社区出品的节点文件传输工具,基于原生 HTTP 流实现零内存开销的 GB 级文件秒传,较 Base64 方案提速 150 倍。

收藏
9.8k
安装
2.7k
版本
1.0.0
CLS 安全性认证2026-06-04
点击查看完整报告 >

使用说明

node-transfer 是一款专为 OpenClaw 分布式节点设计的高性能文件传输工具,通过原生 Node.js HTTP 流技术彻底解决了传统 Base64 编码传输的效率瓶颈。

核心用法 采用"一次部署,多次运行"的智能模式。首次使用时通过 deploy.js 将传输脚本部署到目标节点(约 30 秒),后续通过 ensure-installed.js 进行毫秒级版本校验。实际传输时,发送端执行 send.js 启动临时 HTTP 服务器并生成 256 位随机 Token,接收端通过 receive.js 建立直连流式下载。整个过程无需 Base64 编解码,文件直接从磁盘流式传输至网络,内存占用恒定在 10MB 以下。

显著优点 体现在性能与资源占用的双重突破。相比传统 Base64 传输,该工具实现约 150 倍速度提升(1GB 文件从 15-30 分钟缩短至 8 秒),内存占用降低 99%。其安全模型设计严谨:单次有效的加密 Token、传输完成后自动关闭服务器、5 分钟超时机制有效防止资源泄露。此外,纯内置模块依赖(零 npm 包)确保了供应链安全。

潜在局限 主要包括传输层安全与功能边界。当前版本使用 HTTP 明文传输(非 HTTPS),虽适用于内部可信网络,但不建议跨公网使用。文件传输为一次性会话,不支持断点续传功能。作为 T3 级社区来源工具,虽代码已开源可审计,但非 OpenClaw 官方维护,长期支持存在不确定性。

适用群体 主要为 OpenClaw 生态下的 DevOps 工程师、后端开发者及运维团队,特别是需要频繁在节点间同步大体积文件(如日志、数据库备份、容器镜像)且受限于内存资源的场景。

使用风险 集中在网络环境与权限管理。需确保节点间 TCP 连通性(端口 1024-65535)及防火墙放行,传输中断可能导致部分文件残留(虽有自动清理机制)。接收端默认具备目录创建权限,需防范路径遍历风险(已通过 path.resolve() 缓解)。建议在隔离的本地网络环境中使用,避免敏感数据通过明文 HTTP 传输。

安全解读

核心用法

node-transfer 是专为 OpenClaw 分布式节点设计的文件传输解决方案,采用 sender-receiver 架构实现节点间直连传输:

1. 部署模式:首次安装脚本至节点(约 30 秒),后续通过 ensure-installed.js 快速校验(<100ms),实现"一次部署,多次复用"
2. 传输流程:源节点运行 send.js 启动 HTTP 服务端,生成带 256-bit Token 的 URL;目标节点运行 receive.js 连接下载,支持实时进度上报

3. 命令行/程序化:既可直接命令行调用,也可通过 nodes.invoke() API 集成到自动化工作流

显著优点

  • 极致性能:1GB 文件传输从 15-30 分钟降至 8 秒,提升约 150 倍;内存占用从 1GB+ 降至 <10MB
  • 零依赖安全:纯 Node.js 原生实现(http/fs/crypto/os),彻底消除供应链攻击面
  • 完善安全模型:密码学随机 Token、单次连接限制、5 分钟自动超时、传输完成自动关服
  • 生产就绪:完善的错误处理(9 类错误码)、进度追踪、大小校验、自动清理机制

潜在局限

  • 网络要求:需节点间 TCP 互通,防火墙需开放临时端口(1024-65535)
  • 传输可靠性:当前仅校验文件大小匹配,无内置哈希完整性验证(建议后续版本增强)
  • 版本管理version.js 哈希字段当前为空,需手动维护版本一致性
  • 适用范围:专为 OpenClaw 节点间传输优化,非通用文件共享工具

适合人群

  • OpenClaw 分布式系统管理员
  • 需在节点间频繁传输大文件(日志、模型、数据集)的 MLOps/DevOps 团队
  • 对内存敏感、追求传输效率的边缘计算场景

常规风险

  • Token 泄露风险:URL+Token 组合需安全渠道传递,截获可导致单次传输被窃
  • 端口占用冲突:随机端口可能与节点其他服务冲突,建议生产环境指定固定端口范围
  • 防火墙策略:动态端口可能被安全组策略拦截,需提前规划网络规则
  • 传输中断:网络闪断导致 SIZE_MISMATCH 错误,需客户端实现重试逻辑

node-transfer 内容

手动下载zip · 24.0 kB
CONTRIBUTING_PROPOSAL.mdtext/markdown
请选择文件