|
Download README.md from WACATW/pan: direct link, hf CLI and curl.
- Browser
- Download file 4.93 kB
-
https://huggingface.co/spaces/WACATW/pan/resolve/main/README.md
- Command line
-
hf download hf://spaces/WACATW/pan/README.md
-
curl -L -o README.md https://huggingface.co/spaces/WACATW/pan/resolve/main/README.md
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 | |