Share One-Time Link

通过本地服务器与 Cloudflare 隧道生成一次性或限时可下载的公开链接,文件自动删除。

已扫描
适合谁
需要临时分享文件的技术人员、希望避免云存储的个人用户
不适合谁
需长期保存或高安全性文件共享者、无法配置 Cloudflare 隧道的初学者
国内可用性
需网络配置。可能需要网络配置或第三方服务可访问。
安装难度
新手友好(★☆☆)。基于终端操作、依赖、API Key 和本地环境要求的初步判断。

安装与下载

openclaw skills install @hitman86r/share-onetime-link

Skill 说明

命令、参数、文件名以原文为准

分享一次性链接

为文件生成公开、带令牌、自毁的下载链接。

文件通过本地 Express 服务器提供服务,并通过 Cloudflare Tunnel 暴露到互联网。

功能特性

  • 公开访问 — 无需 VPN,任何地方均可使用
  • 一次性链接 — 首次下载后令牌即失效
  • 可配置过期时间(TTL) — 链接在 N 分钟后过期(默认:60 分钟)
  • 自动清理 — 文件在下载或过期后从 shared/ 目录中删除
  • 受保护端点/generate/status 接口需提供 SHARE_SECRET
  • 目录隔离 — 仅 shared/ 目录中的文件可被访问,不会暴露整个工作区
  • 下载无需登录 — 拥有链接者可一次性下载

系统要求

  • Node.js
  • 已安装 cloudflared,并配置好指向 localhost:5050 的 Cloudflare Tunnel
  • 设置 SHARE_PUBLIC_URL 为你的公网隧道地址(例如:https://share.yourdomain.com
  • 设置 SHARE_SECRET 为一个强随机字符串(推荐)

安装步骤

1. 安装依赖

cd skills/share-onetime-link/scripts
npm install

2. 配置 Cloudflare Tunnel

在 [Cloudflare Zero Trust 控制台](https://one.dash.cloudflare.com) 中创建隧道:

  • 服务:http://localhost:5050
  • 公网主机名:例如 share.yourdomain.com

运行隧道:

cloudflared tunnel run --token YOUR_TUNNEL_TOKEN

3. 启动服务器

SHARE_PUBLIC_URL="https://share.yourdomain.com" \
SHARE_SECRET="your-strong-random-secret" \
node skills/share-onetime-link/scripts/server.js

或使用 start.sh 脚本(请先编辑变量):

bash skills/share-onetime-link/scripts/start.sh

使用方法

通过脚本生成链接

SHARE_SECRET="your-secret" \
node skills/share-onetime-link/scripts/share-file.js /path/to/file.pdf 30
# 返回一个有效 30 分钟的公共链接

通过智能体生成链接

自然提问即可:

“分享 report.pdf,有效期 20 分钟”

“为 photo.jpg 生成一个有效一小时的下载链接”

查看当前活跃链接

curl -H "x-share-secret: your-secret" http://localhost:5050/status

环境变量说明

变量是否必需默认值说明
SHARE_PUBLIC_URLhttp://localhost:5050生成链接的公网基础地址
SHARE_SECRET推荐*(无)*用于保护 /generate/status 接口的密钥
SHARE_PORT5050本地服务器端口
SHARED_DIRworkspace/shared/存放共享文件的目录

安全注意事项

  • /dl/:token 按设计为公开 — 拥有链接者可下载一次
  • /generate/status **受 SHARE_SECRET 保护** — 公开前务必设置
  • 若未设置 SHARE_SECRET,系统将记录警告,且相关接口不受保护
  • shared/ 外的文件均不可访问
  • 令牌为加密随机生成(32 字节 / 64 位十六进制字符)
  • 过期时间(TTL)由服务器强制执行,不受客户端行为影响
  • 请勿将敏感文件放入 SHARED_DIR,除非你有意与他人共享
H
@hitman86r

已收录 1 个 Skill

相关推荐