文件存储与分享系统
系统概述
这是一个基于Cloudflare Workers的文件存储与分享系统,支持文件上传、下载和密码保护等功能。系统采用前后端分离架构,前端使用Cloudflare Pages部署,后端使用Cloudflare Workers提供API服务。
技术架构
- 前端:纯静态HTML/CSS/JavaScript
- 后端:Cloudflare Workers
- 存储:Cloudflare R2
- 数据库:Cloudflare D1
部署步骤
1. 环境准备
- 安装Wrangler CLI:
npm install -g wrangler
- 登录Cloudflare账号:
wrangler login
2. 后端部署
- 创建R2存储桶:
wrangler r2 bucket create file-share-bucket
- 创建D1数据库:
wrangler d1 create file-share-db
- 初始化数据库表:
wrangler d1 execute file-share-db --file=schema.sql --remote
- 修改
wrangler.toml配置:
name = "file-share"
main = "main.js"
[[r2_buckets]]
binding = "file_share_bucket"
bucket_name = "file-share-bucket"
[[d1_databases]]
binding = "DB"
database_name = "file-share-db"
database_id = "your-database-id"
-
修改main.js中内容: 找到包含
frontend: "<你的前端地址>"的内容,换成你实际上的前端地址。 -
部署Worker:
wrangler deploy
3. 前端部署
- 修改
script.js中的API地址:
找到包含<你的后端地址>的内容,换成你实际上的后端地址。 - 修改
index.html中的API地址:
找到包含<你的后端地址>的内容,换成你实际上的后端地址。 - 在Cloudflare Pages中创建新项目:
- 上传压缩后的前端压缩包,不要有二级目录。
- 设置自定义域名:设置为你实际的前端地址。
使用方法
文件上传
- 访问前端网站(例如:https://fileshare.ssplus.cn )
- 点击"选择文件"按钮选择要上传的文件。
- 可选:设置文件访问密码。
- 点击"上传"按钮。
- 上传成功后获取文件分享链接。
文件下载
- 访问文件分享链接。
- 如果文件设置了密码,输入密码。
- 点击"下载"按钮开始下载。
API文档
上传文件
- 端点:
POST <你的后端地址>/upload - 请求体:FormData格式
file:文件数据password:(可选)文件密码
- 响应:JSON格式
success:布尔值,表示上传是否成功fileId:字符串,文件唯一标识符
下载文件
- 端点:
GET <你的后端地址>/file/:fileId - URL参数:
fileId:文件唯一标识符
- 查询参数:
password:(可选)文件密码
注意事项
- 确保Cloudflare账号已启用Workers和Pages服务
- 配置正确的CORS设置,允许前端域名访问API
- 定期检查R2存储使用量和D1数据库容量
- 建议设置文件大小限制和存储时间限制
- 保持
wrangler.toml中的配置与实际创建的资源名称一致
Languages
JavaScript
58.6%
HTML
26%
CSS
15.4%