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