pan / README.md
WACATW's picture
Upload 10 files
66bfab2 verified
|
Raw History Blame Contribute Delete
4.93 kB
---
title: 云盘 - Cloud Disk
emoji: 💾
colorFrom: purple
colorTo: pink
sdk: docker
app_file: app.py
pinned: false
---
# 云盘 - Cloud Disk v2.0
一个轻量级的个人云盘应用,支持用户注册登录、独立存储空间、文件上传下载、文件夹管理等功能。
## ✨ 功能特性
### v2.0 新功能
- 👤 **用户系统**:支持注册、登录、退出
- 🔒 **空间隔离**:每个用户独立存储空间,数据安全隔离
- 💾 **存储配额**:每个用户 1GB 存储空间
- 📊 **实时显示**:存储空间使用情况实时展示
### 核心功能
- 📁 **文件管理**:上传、下载、删除文件
- 📂 **文件夹管理**:创建、浏览、删除文件夹
- 🎨 **现代化界面**:美观的 UI 设计,支持响应式布局
- 🖱️ **拖拽上传**:支持拖拽文件到上传区域
- 🔐 **密码安全**:密码哈希存储,保护用户隐私
## 🚀 部署到 Hugging Face Spaces
### Docker 部署(推荐)
1. 在 Hugging Face 创建一个新的 Space,选择 **Docker** 作为 SDK
2. 将本项目的所有文件上传到 Space 仓库
3. 等待部署完成后即可访问
> 💡 **注意**:v2.0 版本默认使用本地存储,无需配置 HF_TOKEN 和 DATASET_REPO。但 Hugging Face Spaces 重启后数据可能会丢失。
### 📦 使用 Storage Buckets 持久化存储(推荐)
为了防止数据丢失,建议使用 Hugging Face 的 Storage Buckets 功能:
1. 在你的 Space 设置中找到 **Storage Buckets** 部分
2. 点击 **Mount a bucket** 挂载一个存储桶
3. 挂载路径设置为 `/data`
4. 重新部署 Space,数据就会自动保存到存储桶中
> ✅ 使用 Storage Buckets 后,即使 Space 重启,数据也不会丢失!
### 本地运行
```bash
# 安装依赖
pip install -r requirements.txt
# 运行
python app.py
```
访问 http://localhost:7860 即可使用。
## ⚙️ 环境变量配置
| 变量名 | 说明 | 默认值 |
|--------|------|--------|
| `SECRET_KEY` | Session 加密密钥 | cloud-disk-secret-key-2024 |
| `STORAGE_PATH` | 存储文件路径(Storage Buckets 设为 `/data`) | /data |
| `PORT` | 服务端口 | 7860 |
## 📝 使用说明
### 注册账号
1. 打开应用后点击"立即注册"
2. 输入用户名(3-20位,支持字母、数字、下划线、中文)
3. 设置密码(至少6位)并确认
4. 点击"注册账号"完成注册
### 登录账号
1. 输入用户名和密码
2. 点击"登录"进入云盘
### 上传文件
- 点击"上传文件"按钮选择文件
- 或直接拖拽文件到上传区域
- 支持批量上传多个文件
- 上传前会检查剩余存储空间
### 创建文件夹
- 点击"新建文件夹"按钮
- 输入文件夹名称并确认
### 浏览文件
- 点击文件夹进入
- 使用面包屑导航返回上级目录
- 点击刷新按钮重新加载文件列表
### 下载/删除文件
- 点击下载图标下载文件
- 点击删除图标删除文件或文件夹(删除前会确认)
### 查看存储空间
- 顶部显示存储空间使用进度条
- 上传、删除文件后会自动更新
### 退出登录
- 点击右上角的退出图标
- 确认后返回登录页面
## 🏗️ 技术栈
- **后端**:Flask (Python)
- **前端**:HTML + CSS + JavaScript + Font Awesome
- **用户认证**:Werkzeug Security + Flask Session
- **存储**:本地文件系统
- **部署**:Docker / Hugging Face Spaces
## 📁 项目结构
```
cloud-disk/
├── app.py # Flask 后端应用
├── requirements.txt # Python 依赖
├── Dockerfile # Docker 部署配置
├── README.md # 说明文档
├── .env.example # 环境变量示例
├── storage/ # 存储目录(运行时自动创建)
│ ├── users.json # 用户数据文件
│ └── users/ # 用户存储目录
│ └── {username}/ # 每个用户独立目录
├── templates/
│ ├── index.html # 主页面
│ ├── login.html # 登录页面
│ └── register.html # 注册页面
└── static/
├── css/style.css # 样式文件
└── js/app.js # 前端交互逻辑
```
## 🔒 安全特性
- **密码哈希**:使用 werkzeug.security 进行密码哈希存储
- **路径安全**:防止路径遍历攻击,用户只能访问自己的文件
- **空间隔离**:每个用户独立存储目录,数据互不干扰
- **配额限制**:每个用户最多 1GB 存储空间,防止滥用
## ⚠️ 注意事项
1. **数据持久化**:建议使用 Storage Buckets 存储(路径 `/data`),这样 Space 重启后数据不会丢失
2. **并发限制**:单用户演示用途,高并发场景可能需要优化
3. **存储配额**:每个用户 1GB 空间,超出后无法上传新文件
## 📄 License
MIT License