Files
Aliyun-VOD-Media-Library-Ma…/README.md
T

2.7 KiB
Raw Blame History

阿里云 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(推荐)

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

方式二:源码运行

# 安装依赖
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 子用户,并授予最小权限:

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "vod:Get*",
        "vod:List*",
        "vod:SearchMedia",
        "vod:GetPlayInfo",
        "vod:DeleteVideo",
        "vod:UpdateVideoInfo"
      ],
      "Resource": "*"
    }
  ]
}

如果只需要只读能力,请移除 DeleteVideoUpdateVideoInfo

项目结构

.
├── 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