基于 Next.js + Prisma + MySQL + TOS 构建的云空间系统。支持图片与通用文件的上传、浏览、权限控制与安全分享。
- 文件空间(Cloud Space):基于 Fileset 的通用文件管理(上传/预览/删除/搜索)
- 相册分类:私有 / 内部 / 公开三种可见性
- 图片上传:支持 JPG/PNG/WebP,生成缩略图并存储至 TOS
- 用户与权限:注册/登录,管理员 / 成员角色;成员仅管理自己上传内容
- 分享访问:可配置密码与过期时间的分享链接
- 批量下载:选择图片后打包为 ZIP
- 管理后台与响应式界面
- Node.js >= 18
- pnpm >= 8
- MySQL >= 8
- 安装依赖:
pnpm install - 复制环境变量模板:
cp .env.example .env
- 运行:
pnpm dev - 访问:
http://localhost:3000 - 首次注册的账户自动成为管理员,后续用户为成员角色。
- 开发环境:
docker compose up -d/ 查看日志:docker compose logs -f studio-album/ 停止:docker compose down - 生产构建与运行:
pnpm build,pnpm start或pm2 start npm --name "studio-album" -- start
本项目采用 MIT 许可证 - 详见 LICENSE 文件