功能概述
expiring-local-fileshare 是专为 OpenClaw 设计的轻量级本地文件共享技能,解决 AI 助手在隔离工作区中生成文件后的便捷访问需求。通过启动临时 Node.js HTTP 服务器,为指定文件生成带随机令牌的时效性链接,用户可在浏览器中直接预览或下载。
核心用法
使用 {baseDir}/scripts/share.sh 脚本,指定文件路径即可生成链接。支持自定义端口(默认 8888+)、有效期(默认 1 小时,最长 24 小时)和一次性访问模式。典型场景包括:分享生成的 Markdown 报告、预览 AI 绘制的图像、在移动设备查看 PDF 文档等。
显著优点
1. 网络层隔离:严格限制 RFC1918 私有地址段(10/8、172.16/12、192.168/16)及 localhost,拒绝公网直接访问,VPN 场景下天然兼容
2. 令牌机制安全:128 位随机十六进制令牌,暴力猜测计算不可行
3. 时效可控:默认 1 小时短有效期,支持最长 24 小时,降低暴露窗口
4. 一次性访问:可选配置为首次成功下载后令牌失效,适合敏感文件传递
5. 零持久化服务:无后台驻留进程,按需启动、手动或自动停止,攻击面极小
6. 路径沙箱:默认仅允许分享 ~/.openclaw/workspace 内文件,防止误暴露系统敏感路径
潜在局限
1. Node.js 依赖:目标环境必须预装 Node.js 运行时
2. 局域网边界模糊:VPN 扩展了"本地网络"概念,若 VPN 配置宽松(如全隧道转发),实际可达范围可能超出用户预期
3. 无传输加密:HTTP 明文传输,同一网络内的被动嗅探可截获内容,敏感场景建议叠加 VPN 加密隧道
4. 令牌传递风险:链接本身需通过聊天或其他渠道传递,若通信信道不安全,令牌可能泄露
5. 端口管理:自动分配端口虽便利,但多实例场景下需手动跟踪避免冲突
适合人群
- 需要快速预览 OpenClaw 生成文件的开发者/内容创作者
- 团队内网协作,需在浏览器查看 AI 输出的图像、文档
- 注重数据主权、不愿上传至公有云服务的隐私敏感用户
常规风险
- 误配置暴露:若手动设置
FILESHARE_ALLOW_ANY_PATH=1,可能意外分享/etc/passwd等系统文件 - 令牌日志泄露:访问日志含完整令牌 URL,需确保日志文件权限
- 浏览器缓存惯性:虽配置 no-cache 头,但某些浏览器或代理可能仍缓存内容
- 进程残留异常终止:若 share.sh 被强制中断,Node 进程可能残留,需手动清理
总体评估
该技能体现了"最小权限+临时性"的安全设计哲学,在便利性与安全性间取得合理平衡。适合可控网络环境下的快速文件共享,但不应替代正式的加密文件传输方案(如 Magic Wormhole、端到端加密网盘)用于高敏感数据。