# aiCodeSpxz **Repository Path**: sqty/msdw ## Basic Information - **Project Name**: aiCodeSpxz - **Description**: 用ai编程 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-19 - **Last Updated**: 2025-09-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 测试视频下载系统 [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) [![Java](https://img.shields.io/badge/Java-8+-orange.svg)](https://www.oracle.com/java/) [![Spring Boot](https://img.shields.io/badge/Spring%20Boot-2.7.14-brightgreen.svg)](https://spring.io/projects/spring-boot) [![React](https://img.shields.io/badge/React-18.0+-61dafb.svg)](https://reactjs.org/) [![Docker](https://img.shields.io/badge/Docker-20.0+-blue.svg)](https://www.docker.com/) 基于微服务架构的现代化视频下载系统,支持Chrome插件一键下载、Web界面管理、Docker容器化部署。 [English](README_EN.md) | 中文 ## ✨ 核心特性 - 🎯 **一键下载**: Chrome插件支持网页视频一键下载 - 🏗️ **微服务架构**: 基于Spring Cloud的分布式系统设计 - 🔐 **安全认证**: JWT + Spring Security完整认证体系 - 📱 **现代化UI**: React + TypeScript + Ant Design响应式界面 - 🐳 **容器化部署**: Docker + Docker Compose一键部署 - 📊 **实时监控**: 完整的健康检查和日志监控 - 🚀 **高性能**: Redis缓存 + RabbitMQ消息队列 - 🔄 **服务发现**: Nacos注册中心和配置管理 ## 🏗️ 系统架构 ### 微服务组件 | 服务 | 端口 | 描述 | 技术栈 | |------|------|------|--------| | **gateway-service** | 8080 | API网关服务 | Spring Cloud Gateway | | **auth-service** | 8081 | 用户认证服务 | Spring Security + JWT | | **download-service** | 8082 | 下载管理服务 | Spring Boot + MyBatis-Plus | | **parser-service** | 8083 | 视频解析服务 | Spring Boot + Jsoup | | **file-service** | 8084 | 文件管理服务 | Spring Boot + MinIO | | **frontend** | 3000 | 前端Web应用 | React + TypeScript + Vite | ### 基础设施组件 | 组件 | 端口 | 描述 | 用途 | |------|------|------|------| | **MySQL** | 3306 | 关系型数据库 | 数据持久化存储 | | **Redis** | 6379 | 内存数据库 | 缓存和会话存储 | | **RabbitMQ** | 5672/15672 | 消息队列 | 异步任务处理 | | **Nacos** | 8848 | 注册中心 | 服务发现和配置管理 | ## 🚀 快速开始 ### 环境要求 - **Docker**: 20.0+ - **Docker Compose**: 2.0+ - **Node.js**: 16+ (开发环境) - **Java**: 8+ (开发环境) - **Maven**: 3.6+ (开发环境) ### 一键部署 ```bash # 1. 克隆项目 git clone cd msdw # 2. 启动所有服务 ./start.sh # 或者使用Docker Compose docker-compose up -d # 3. 查看服务状态 docker-compose ps # 4. 查看日志 docker-compose logs -f ``` ### 服务访问地址 | 服务 | 地址 | 用户名/密码 | |------|------|-------------| | 🌐 **前端界面** | http://localhost:3000 | - | | 🚪 **API网关** | http://localhost:8080 | - | | 📊 **Nacos控制台** | http://localhost:8848/nacos | nacos/nacos | | 🐰 **RabbitMQ管理** | http://localhost:15672 | admin/admin123 | ## 📁 项目结构 ``` msdw/ ├── 📋 README.md # 项目说明文档 ├── 📋 README_EN.md # 英文说明文档 ├── 📋 设计文档.md # 系统设计文档 ├── 📋 代码清理总结.md # 代码清理报告 ├── 🐳 docker-compose.yml # Docker编排配置 ├── 🚀 start.sh # 启动脚本 ├── 🛑 stop.sh # 停止脚本 ├── 🔨 build.sh # 构建脚本 ├── 🌐 gateway-service/ # API网关服务 │ ├── 📄 pom.xml │ ├── 🐳 Dockerfile │ └── 📂 src/main/java/com/test/gateway/ ├── 🔐 auth-service/ # 认证授权服务 │ ├── 📄 pom.xml │ ├── 🐳 Dockerfile │ └── 📂 src/main/java/com/test/auth/ ├── ⬇️ download-service/ # 下载管理服务 │ ├── 📄 pom.xml │ ├── 🐳 Dockerfile │ └── 📂 src/main/java/com/test/download/ ├── 🔍 parser-service/ # 视频解析服务 │ ├── 📄 pom.xml │ ├── 🐳 Dockerfile │ └── 📂 src/main/java/com/test/parser/ ├── 📁 file-service/ # 文件管理服务 │ ├── 📄 pom.xml │ ├── 🐳 Dockerfile │ └── 📂 src/main/java/com/test/file/ ├── 💻 frontend/ # React前端应用 │ ├── 📄 package.json │ ├── 📄 vite.config.ts │ ├── 🐳 Dockerfile │ └── 📂 src/ ├── 🔌 chrome-extension/ # Chrome浏览器插件 │ ├── 📄 manifest.json │ └── 📂 src/ └── 🏗️ infrastructure/ # 基础设施配置 └── 📂 mysql/init/ ``` ## 🔧 开发指南 ### 本地开发环境 #### 1. 启动基础设施 ```bash # 只启动基础设施服务 docker-compose up -d mysql redis rabbitmq nacos ``` #### 2. 启动微服务 ```bash # 方式一:使用IDE启动各个服务 # 在IDE中导入各个服务的Maven项目,然后启动 # 方式二:命令行启动 cd gateway-service && mvn spring-boot:run & cd auth-service && mvn spring-boot:run & cd download-service && mvn spring-boot:run & cd parser-service && mvn spring-boot:run & cd file-service && mvn spring-boot:run & ``` #### 3. 启动前端 ```bash cd frontend npm install npm run dev ``` #### 4. 安装Chrome插件 1. 打开Chrome浏览器 2. 进入扩展程序管理页面 `chrome://extensions/` 3. 开启"开发者模式" 4. 点击"加载已解压的扩展程序" 5. 选择 `chrome-extension` 目录 ### 开发工具推荐 - **IDE**: IntelliJ IDEA / VS Code - **API测试**: Postman / Apifox - **数据库管理**: Navicat / DBeaver - **容器管理**: Docker Desktop - **版本控制**: Git ## 🐳 Docker部署 ### 构建镜像 ```bash # 构建所有服务镜像 docker-compose build # 构建单个服务镜像 docker-compose build gateway-service docker-compose build auth-service ``` ### 生产环境部署 ```bash # 使用生产环境配置 docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d ``` ### 镜像管理 ```bash # 查看镜像 docker images | grep msdw # 清理未使用的镜像 docker image prune -f # 推送到镜像仓库 docker-compose push ``` ## 📊 监控和运维 ### 健康检查 ```bash # 检查网关服务健康状态 curl http://localhost:8080/actuator/health # 检查所有微服务健康状态 curl http://localhost:8081/actuator/health # auth-service curl http://localhost:8082/actuator/health # download-service curl http://localhost:8083/actuator/health # parser-service curl http://localhost:8084/actuator/health # file-service ``` ### 日志管理 ```bash # 查看所有服务日志 docker-compose logs -f # 查看特定服务日志 docker-compose logs -f gateway-service docker-compose logs -f auth-service # 查看最近100行日志 docker-compose logs --tail=100 download-service ``` ### 性能监控 ```bash # 查看容器资源使用情况 docker stats # 查看服务指标 curl http://localhost:8080/actuator/metrics curl http://localhost:8080/actuator/prometheus ``` ## 🔒 安全配置 ### JWT配置 - **Token过期时间**: 24小时 - **刷新Token过期时间**: 7天 - **加密算法**: HS256 - **密钥**: 生产环境请修改 `application.yml` 中的密钥 ### 数据库安全 ```yaml # 生产环境配置示例 spring: datasource: url: jdbc:mysql://localhost:3306/test_auth?useSSL=true&serverTimezone=UTC username: ${DB_USERNAME:root} password: ${DB_PASSWORD:your_secure_password} ``` ### 网络安全 - 启用HTTPS (生产环境) - 配置CORS策略 - 设置防火墙规则 - 定期更新依赖包 ## 🚨 故障排除 ### 常见问题 #### 1. 服务启动失败 ```bash # 检查端口占用 netstat -tulpn | grep :8080 # 查看详细错误日志 docker-compose logs gateway-service # 重启服务 docker-compose restart gateway-service ``` #### 2. 数据库连接失败 ```bash # 检查MySQL服务状态 docker-compose ps mysql # 测试数据库连接 docker-compose exec mysql mysql -u root -p # 重新初始化数据库 docker-compose down -v docker-compose up -d mysql ``` #### 3. 服务注册失败 ```bash # 检查Nacos服务状态 curl http://localhost:8848/nacos/v1/ns/operator/servers # 查看服务注册列表 curl http://localhost:8848/nacos/v1/ns/instance/list?serviceName=gateway-service ``` #### 4. 前端访问异常 ```bash # 检查前端服务状态 docker-compose logs frontend # 重新构建前端 cd frontend && npm run build docker-compose build frontend docker-compose up -d frontend ``` ## 📝 API文档 ### Swagger文档 启动服务后访问以下地址查看API文档: - **网关服务**: http://localhost:8080/swagger-ui.html - **认证服务**: http://localhost:8081/swagger-ui.html - **下载服务**: http://localhost:8082/swagger-ui.html - **解析服务**: http://localhost:8083/swagger-ui.html - **文件服务**: http://localhost:8084/swagger-ui.html ### 主要API接口 #### 认证相关 ```http POST /api/auth/login # 用户登录 POST /api/auth/register # 用户注册 POST /api/auth/refresh # 刷新Token POST /api/auth/logout # 用户登出 ``` #### 下载管理 ```http GET /api/downloads # 获取下载列表 POST /api/downloads # 创建下载任务 GET /api/downloads/{id} # 获取下载详情 PUT /api/downloads/{id} # 更新下载任务 DELETE /api/downloads/{id} # 删除下载任务 ``` #### 文件管理 ```http GET /api/files # 获取文件列表 POST /api/files/upload # 上传文件 GET /api/files/{id}/download # 下载文件 DELETE /api/files/{id} # 删除文件 ``` ## 🧪 测试 ### 单元测试 ```bash # 运行所有微服务的单元测试 mvn test # 运行特定服务的测试 cd auth-service && mvn test ``` ### 集成测试 ```bash # 启动测试环境 docker-compose -f docker-compose.test.yml up -d # 运行集成测试 mvn verify ``` ### 前端测试 ```bash cd frontend npm test # 运行单元测试 npm run test:e2e # 运行端到端测试 ``` ## 🤝 贡献指南 ### 开发流程 1. **Fork项目** 到你的GitHub账户 2. **创建功能分支** `git checkout -b feature/amazing-feature` 3. **提交代码** `git commit -m 'Add some amazing feature'` 4. **推送分支** `git push origin feature/amazing-feature` 5. **创建Pull Request** ### 代码规范 - **Java**: 遵循阿里巴巴Java开发手册 - **JavaScript/TypeScript**: 使用ESLint + Prettier - **提交信息**: 遵循Conventional Commits规范 ### 问题反馈 - 🐛 **Bug报告**: [创建Issue](../../issues/new?template=bug_report.md) - 💡 **功能建议**: [创建Issue](../../issues/new?template=feature_request.md) - 📖 **文档改进**: [创建Issue](../../issues/new?template=documentation.md) ## 📄 许可证 本项目采用 [MIT License](LICENSE) 开源协议。 ⚠️ **免责声明**: 本项目仅供学习和研究使用,请遵守相关法律法规,不得用于商业用途或侵犯他人权益。 ## 📞 联系方式 - 📧 **邮箱**: your-email@example.com - 💬 **讨论**: [GitHub Discussions](../../discussions) - 🐛 **问题**: [GitHub Issues](../../issues) ---
**如果这个项目对你有帮助,请给它一个 ⭐️** Made with ❤️ by [Your Name](https://github.com/yourusername)