基于Cloudflare Worker部署的在线剪切板,支持markdown和文件分享

想着每次用传输文本和小文件时,得复制到微信在传输,有时格式还对不上。用其余的也不放心和麻烦。闲来无事,用cursor搓了一个基于Cloudflare Worker部署的在线剪切板。

地址:GitHub - ling-drag0n/CloudPaste: 基于 Cloudflare Workers 的在线剪贴板和文件分享服务,支持 Markdown、密码保护、文件上传等功能

功能特点

文本分享

  • 支持普通文本和 Markdown 格式
  • Markdown 实时预览和同步滚动
  • 完整的 Markdown 样式支持
    • 优化的列表嵌套显示
    • 美化的表格样式
    • 代码块实时语法高亮
    • 支持数学公式渲染 (KaTeX)
  • 编辑器支持双向拉伸调整大小
  • 支持密码保护
  • 可选过期时间
  • 自定义分享链接后缀
  • 支持设置分享访问次数限制
  • 同步滚动预览

文件分享

  • 支持拖拽上传
  • 多文件上传
  • 文件大小限制(98MB,注意worker限制和R2限制)
  • 密码保护
  • 自定义过期时间
  • 实时上传进度显示
  • 文件预览功能
    • 图片预览
    • 音频预览
    • 视频预览
  • 上传速度显示
  • 支持取消上传
  • 文件类型图标显示

管理功能

  • 管理员登录
  • 管理员状态持久化
  • 查看所有分享链接
  • 分类过滤(文本/文件)
  • 可管理文本/文件上传(防止被盗刷额度)
  • 删除分享(带确认提示)
  • 复制分享链接
  • 查看分享统计
  • 自动过期清理 (每当有请求访问时,检查当前时间,如果是整点(分钟为0),触发清理操作)
  • 监控存储空间使用情况
    • 已用空间
    • 总容量
    • 使用率百分比
  • 修改分享密码(支持文本和文件分享)
    • 可随时添加/移除密码保护
    • 支持清空密码移除保护
  • 支持设置分享下载次数限制

访问控制

  • 密码保护
    • 支持文本和文件分享设置密码
    • 管理员可随时修改或移除密码
    • 密码加密存储
  • 文本内容控制
    • 仅管理员可编辑已分享的文本内容
    • 普通用户只能查看
  • 上传控制
    • 管理员可开启/关闭文本上传功能
    • 管理员可开启/关闭文件上传功能
    • 防止恶意上传占用资源

部署步骤

1. 准备工作

  1. 注册 Cloudflare 账号
  2. 进入 Cloudflare 控制台

2. 创建存储资源

  1. 创建 KV 命名空间
  • 名称:PASTE_STORE
  • 用于存储文本内容
  • 名称:UPLOAD_STATUS
  • 用于存储上传功能的开关状态
  1. 创建 R2 存储桶
  • 名称:cloudpaste-files
  • 用于存储上传的文件

3. 创建 Worker

  1. 创建新的 Worker
  2. 配置环境变量:
ADMIN_USERNAME=你的管理员用户名
ADMIN_PASSWORD=你的管理员密码
  1. 绑定存储:
  • KV 绑定:
变量名:PASTE_STORE
选择创建的 KV 命名空间
变量名:UPLOAD_STATUS
选择创建的 KV 命名空间
  • R2 绑定:
变量名:FILE_STORE
选择创建的 R2 存储桶

4. 部署代码

  1. 复制 worker.js 的完整代码
  2. 粘贴到 Worker 的编辑器中
  3. 保存并部署