# 阿里云 VOD 媒体库管理器 一个**轻量、开源、可自托管**的阿里云视频点播(VOD)媒体资源管理后台,解决官方控制台操作繁琐、批量处理能力弱的问题。 ## 功能特性 - 视频库快速查看、搜索、筛选(标题、分类、标签、状态、时间) - 批量获取视频播放/下载地址,支持选择清晰度 - 批量删除视频 - 多账号/多 Region 切换管理 - 内置登录与角色控制(管理员 / 只读) - 操作日志审计 - 单 Docker 镜像一键部署 ## 技术栈 - **前端**:React 18 + TypeScript + Vite + Ant Design 5 + Zustand - **后端**:Node.js 20 + Express + TypeScript + SQLite - **阿里云 SDK**:`@alicloud/pop-core` - **部署**:Docker + Docker Compose ## 快速开始 ### 方式一:Docker Compose(推荐) ```bash git clone https://github.com/your-org/Aliyun-VOD-Media-Library-Manager.git cd Aliyun-VOD-Media-Library-Manager/docker cp .env.example .env # 编辑 .env,设置 JWT_SECRET 等 sudo docker-compose up -d ``` 访问 http://localhost:3001,默认账号密码 `admin` / `admin`。 ### 方式二:源码运行 ```bash # 安装依赖 npm install # 启动后端(端口 3001) npm run dev -w apps/server # 新终端启动前端(端口 5173) npm run dev -w apps/web ``` ## 配置说明 关键环境变量: | 变量 | 说明 | 默认值 | | --- | --- | --- | | `JWT_SECRET` | JWT 签名密钥,生产环境必须修改 | `vod-manager-dev-secret-change-me` | | `APP_ENCRYPTION_KEY` | AccessKey Secret 加密密钥 | 空(明文存储,会告警) | | `DEFAULT_ADMIN_USERNAME` | 默认管理员账号 | `admin` | | `DEFAULT_ADMIN_PASSWORD` | 默认管理员密码 | `admin` | | `DB_PATH` | SQLite 数据库路径 | `./data/vod-manager.db` | ## 阿里云 RAM 最小权限 建议为本工具单独创建 RAM 子用户,并授予最小权限: ```json { "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "vod:Get*", "vod:List*", "vod:SearchMedia", "vod:GetPlayInfo", "vod:DeleteVideo", "vod:UpdateVideoInfo" ], "Resource": "*" } ] } ``` 如果只需要只读能力,请移除 `DeleteVideo` 和 `UpdateVideoInfo`。 ## 项目结构 ``` . ├── apps/ │ ├── web/ # React 前端 │ └── server/ # Express 后端 + SQLite ├── docker/ │ ├── Dockerfile │ └── docker-compose.yml ├── docs/ # 部署与使用文档 ├── PRD.md # 产品需求文档 └── README.md ``` ## 贡献指南 欢迎 Issue 和 Pull Request。请确保: 1. 代码通过 `npm run lint` 2. 核心逻辑补充测试 3. 提交信息清晰说明改动 ## License [MIT](./LICENSE)