|
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
metadata
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 部署(推荐)
- 在 Hugging Face 创建一个新的 Space,选择 Docker 作为 SDK
- 将本项目的所有文件上传到 Space 仓库
- 等待部署完成后即可访问
💡 注意:v2.0 版本默认使用本地存储,无需配置 HF_TOKEN 和 DATASET_REPO。但 Hugging Face Spaces 重启后数据可能会丢失。
📦 使用 Storage Buckets 持久化存储(推荐)
为了防止数据丢失,建议使用 Hugging Face 的 Storage Buckets 功能:
- 在你的 Space 设置中找到 Storage Buckets 部分
- 点击 Mount a bucket 挂载一个存储桶
- 挂载路径设置为
/data - 重新部署 Space,数据就会自动保存到存储桶中
✅ 使用 Storage Buckets 后,即使 Space 重启,数据也不会丢失!
本地运行
# 安装依赖
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 |
📝 使用说明
注册账号
- 打开应用后点击"立即注册"
- 输入用户名(3-20位,支持字母、数字、下划线、中文)
- 设置密码(至少6位)并确认
- 点击"注册账号"完成注册
登录账号
- 输入用户名和密码
- 点击"登录"进入云盘
上传文件
- 点击"上传文件"按钮选择文件
- 或直接拖拽文件到上传区域
- 支持批量上传多个文件
- 上传前会检查剩余存储空间
创建文件夹
- 点击"新建文件夹"按钮
- 输入文件夹名称并确认
浏览文件
- 点击文件夹进入
- 使用面包屑导航返回上级目录
- 点击刷新按钮重新加载文件列表
下载/删除文件
- 点击下载图标下载文件
- 点击删除图标删除文件或文件夹(删除前会确认)
查看存储空间
- 顶部显示存储空间使用进度条
- 上传、删除文件后会自动更新
退出登录
- 点击右上角的退出图标
- 确认后返回登录页面
🏗️ 技术栈
- 后端: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 存储空间,防止滥用
⚠️ 注意事项
- 数据持久化:建议使用 Storage Buckets 存储(路径
/data),这样 Space 重启后数据不会丢失 - 并发限制:单用户演示用途,高并发场景可能需要优化
- 存储配额:每个用户 1GB 空间,超出后无法上传新文件
📄 License
MIT License