Drop中转站是一个基于 Cloudflare Pages 的多功能内容分享平台,支持文本、代码、诗歌、图片和文件的在线分享和存储。
- 多种内容类型支持:
- 普通文本:支持markdown格式
- 代码:自动语法高亮
- 诗歌:优雅排版展示
- 图片:支持预览和下载
- 文件:支持所有类型文件的上传和下载
- 美观的界面设计:
- 响应式布局,完美适配手机和电脑
- 优雅的中文字体渲染
- 简洁现代的界面风格
- 便捷的操作体验:
- 一键添加新内容
- 拖拽上传文件
- 实时预览效果
- 快速编辑和删除
- 前端:
- HTML5 + CSS3 + JavaScript
- Prism.js 用于代码高亮
- 后端:
- Cloudflare Pages 托管静态资源
- Cloudflare Workers 处理动态请求
- Cloudflare D1 SQLite 数据库存储内容
- Cloudflare KV 存储图片和文件
.
├── index.html # 主页面
├── css/ # 样式文件
│ └── style.css # 主样式文件
├── js/ # JavaScript文件
│ ├── main.js # 主逻辑文件
│ └── theme.js # 主题相关
├── functions/ # Cloudflare Functions
│ ├── contents/ # 内容管理相关API
│ │ └── [id].js # 内容CRUD操作
│ ├── images/ # 图片处理相关API
│ │ └── [name].js # 图片上传和获取
│ └── files/ # 文件处理相关API
│ ├── upload.js # 文件上传
│ └── [name].js # 文件获取和删除
├── schema.sql # 数据库结构
├── _routes.json # API路由配置
└── README.md # 项目文档
- 点击页面顶部的"添加新内容"按钮
- 在弹出的对话框中选择内容类型:
- 普通文本:直接输入或粘贴文本内容
- 代码:输入代码,支持自动语法高亮
- 诗歌:按诗歌格式排版输入
- 图片:点击上传或拖拽图片文件
- 文件:点击上传或拖拽任意类型文件
- 填写标题
- 点击"保存"按钮完成添加
- 找到要编辑的内容卡片
- 点击右上角的编辑图标
- 在弹出的对话框中修改内容
- 点击"保存"保存修改
- 找到要删除的内容卡片
- 点击右上角的删除图标
- 确认删除操作
- 找到要下载的文件/图片卡片
- 点击下载图标或文件名即可下载
- 注册 Cloudflare 账号
- 安装 Node.js 和 npm
- 安装 Wrangler CLI:
npm install -g wrangler
-
克隆项目:
git clone <项目地址> cd dropbox
-
安装依赖:
npm install
-
配置环境:
# 登录到 Cloudflare wrangler login # 创建 D1 数据库 wrangler d1 create drop-db # 创建 KV 命名空间 wrangler kv:namespace create IMAGES wrangler kv:namespace create FILES
-
初始化数据库:
wrangler d1 execute drop-db --file=./schema.sql
-
启动开发服务器:
npm run dev
- 在 Cloudflare Pages 中创建新项目
- 连接 GitHub 仓库
- 配置构建设置:
- 构建命令:
npm run build
- 输出目录:
/
- 构建命令:
- 配置环境变量:
DB
: D1 数据库绑定IMAGES
: KV 命名空间绑定FILES
: KV 命名空间绑定SYNC_INTERVAL
: 内容同步间隔(毫秒),例如:- 30秒:设置为
30000
- 1分钟:设置为
60000
- 5分钟:设置为
300000
- 注意:最小值为5000(5秒)
- 30秒:设置为
- 部署:
npm run deploy
- 默认值:30秒(30000毫秒)
- 修改方法:在 Cloudflare Pages 的环境变量中设置
SYNC_INTERVAL
- 设置位置:Cloudflare Dashboard > Pages > 你的项目 > Settings > Environment variables
- 生效时间:修改后用户刷新页面即可生效
- 注意事项:
- 值必须大于等于5000(5秒)
- 较短的同步间隔会增加API请求频率
- 建议根据实际需求和免费额度(10万次/天)合理设置
- 计算公式:
(24小时 * 3600秒) / (同步间隔秒数) = 每天请求次数/用户
-
Q: 上传文件大小有限制吗? A: 是的,单个文件最大支持 25MB。
-
Q: 支持哪些代码语言的高亮? A: 支持所有主流编程语言,包括但不限于:JavaScript、Python、Java、C++、Go等。
-
Q: 如何备份数据? A: 可以通过 Cloudflare D1 的导出功能备份数据库,KV 存储的文件需要单独下载备份。
如果遇到问题或需要帮助,可以:
- 提交 GitHub Issue
- 查看 Cloudflare 官方文档
- 参考代码注释
本项目采用 MIT 协议开源。