--- 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