首次发布
This commit is contained in:
120
readme.md
Normal file
120
readme.md
Normal file
@@ -0,0 +1,120 @@
|
||||
|
||||
# 文件存储与分享系统
|
||||
|
||||
## 系统概述
|
||||
|
||||
这是一个基于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. 部署Worker:
|
||||
```bash
|
||||
wrangler deploy
|
||||
```
|
||||
|
||||
### 3. 前端部署
|
||||
|
||||
1. 修改`script.js`中的API地址:
|
||||
```javascript
|
||||
const API_BASE_URL = 'https://file.ssplus.cn';
|
||||
// 将所有API调用改为完整URL
|
||||
fetch(`${API_BASE_URL}/upload`, ...)
|
||||
```
|
||||
|
||||
2. 在Cloudflare Pages中创建新项目:
|
||||
- 连接GitHub仓库
|
||||
- 设置构建命令:不需要(静态网站)
|
||||
- 设置构建输出目录:`/`(根目录)
|
||||
- 设置自定义域名:`fileshare.ssplus.cn`
|
||||
|
||||
## 使用方法
|
||||
|
||||
### 文件上传
|
||||
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`中的配置与实际创建的资源名称一致
|
||||
当前模型请求量过大,请求排队约 1 位,请稍候或切换至其他模型问答体验更流畅。
|
||||
Reference in New Issue
Block a user