logo
0
0
WeChat Login

批量下载服务使用说明

概述

这是一个专门用于批量下载电影页面中所有图片的自动化服务。该服务解决了手动复制下载链接效率低下的问题,实现了系统化的批量下载和服务器间文件迁移。

功能特性

🚀 核心功能

  • URL解析: 自动解析电影页面URL,提取所有图片文件信息
  • 批量下载: 支持多线程并发下载,提高下载效率
  • 实时监控: 提供Web界面实时监控下载进度和状态
  • 文件管理: 自动文件完整性校验和哈希验证
  • 压缩打包: 支持将下载的文件打包为ZIP/TAR格式

🛠 技术特性

  • 并发下载: 可配置并发数量,默认5个线程
  • 断点续传: 支持下载失败自动重试
  • 完整性验证: 文件大小和MD5哈希校验
  • 队列管理: 任务队列系统,支持排队下载
  • 状态监控: 实时显示下载进度、速度、成功率

快速开始

1. 本地启动

# 方法1: 使用启动脚本 ./start_batch_download.sh # 方法2: 直接运行Python python3 batch_download_service.py --port 8084

2. 访问服务

打开浏览器访问: http://localhost:8084

3. 使用步骤

  1. 输入URL: 在URL输入框中粘贴电影页面链接

    示例: https://5gp4d4my49-8082.cnb.run/movie/127086/70164?groupType=P&territoryId=1035
  2. 解析页面: 点击"解析页面"按钮,系统会自动提取所有图片文件

  3. 配置参数: 根据需要调整下载配置

    • 并发下载数: 建议3-10
    • 超时时间: 建议300秒
    • 重试次数: 建议3次
  4. 开始下载: 点击"开始批量下载"启动下载任务

  5. 监控进度: 在任务列表中实时查看下载进度

  6. 下载文件: 完成后可以查看文件详情或打包下载

部署到目标服务器

自动部署

./deploy_to_target.sh user@target-server.com /opt/batch_download 22

参数说明:

  • user@target-server.com: 目标服务器SSH地址
  • /opt/batch_download: 目标安装路径
  • 22: SSH端口

手动部署

  1. 上传文件
scp batch_download_service.py user@server:/tmp/ scp -r templates/ user@server:/tmp/
  1. 安装依赖
pip3 install flask requests sqlite3
  1. 启动服务
python3 batch_download_service.py --port 8084

API接口说明

解析电影URL

POST /api/parse_movie_url Content-Type: application/json { "url": "https://5gp4d4my49-8082.cnb.run/movie/127086/70164?groupType=P&territoryId=1035" }

开始批量下载

POST /api/start_batch_download Content-Type: application/json { "movie_info": { "title_id": 127086, "release_id": 70164, "group_type": "P", "territory_id": 1035 }, "files": [ { "runner_id": 15016302, "file_name": "poster.jpg", "file_size": 2048576 } ], "config": { "max_concurrent_downloads": 5, "download_timeout": 300, "retry_attempts": 3 } }

查看下载状态

GET /api/download_status

获取任务详情

GET /api/download_detail/{task_id}

创建下载包

POST /api/create_download_package/{task_id} Content-Type: application/json { "type": "zip" }

配置参数

全局配置

{ "max_concurrent_downloads": 5, // 最大并发下载数 "download_timeout": 300, // 下载超时时间(秒) "retry_attempts": 3, // 重试次数 "retry_delay": 5, // 重试延迟(秒) "chunk_size": 8192, // 下载块大小 "temp_dir": "temp_downloads", // 临时下载目录 "final_dir": "completed_downloads", // 完成文件目录 "max_queue_size": 100 // 最大队列大小 }

下载配置优化建议

场景并发数超时时间重试次数说明
小文件(<10MB)10602提高并发,减少超时
中等文件(10-100MB)53003平衡配置
大文件(>100MB)36005降低并发,增加容错
网络不稳定290010最大化容错

文件结构

batch_download_service.py # 主服务文件 templates/ └── batch_download.html # Web界面模板 temp_downloads/ # 临时下载目录 completed_downloads/ # 完成文件目录 data/ # 数据库目录 start_batch_download.sh # 启动脚本 deploy_to_target.sh # 部署脚本

故障排除

常见问题

  1. 登录失败

    • 检查登录凭据是否正确
    • 确认网络连接正常
    • 查看SSL证书验证设置
  2. 下载失败

    • 检查网络连接稳定性
    • 增加重试次数和超时时间
    • 降低并发下载数量
  3. 内存不足

    • 减少并发下载数量
    • 增加服务器内存
    • 启用文件流式下载
  4. 磁盘空间不足

    • 清理临时文件
    • 增加磁盘空间
    • 启用自动清理功能

日志查看

# 查看服务日志 tail -f app.log # 查看系统服务日志 sudo journalctl -u batch-download -f # 查看错误日志 grep ERROR app.log

性能优化

服务器配置建议

最低配置:

  • CPU: 2核心
  • 内存: 2GB
  • 磁盘: 50GB SSD
  • 网络: 10Mbps

推荐配置:

  • CPU: 4核心
  • 内存: 4GB
  • 磁盘: 200GB SSD
  • 网络: 100Mbps

优化建议

  1. 网络优化

    • 使用CDN加速
    • 配置HTTP/2
    • 启用gzip压缩
  2. 存储优化

    • 使用SSD存储
    • 配置RAID阵列
    • 定期清理临时文件
  3. 系统优化

    • 调整文件描述符限制
    • 优化TCP参数
    • 配置swap空间

安全考虑

  1. 访问控制

    • 配置防火墙规则
    • 使用HTTPS加密
    • 设置访问认证
  2. 数据安全

    • 定期备份重要数据
    • 加密敏感信息
    • 审计访问日志
  3. 系统安全

    • 及时更新系统补丁
    • 限制用户权限
    • 监控异常活动

技术支持

如遇到问题,请提供以下信息:

  1. 错误日志
  2. 系统环境信息
  3. 复现步骤
  4. 期望结果

联系方式:通过项目Issue提交问题报告。

更新日志

v1.0.0 (2024-01-01)

  • 初始版本发布
  • 支持批量下载功能
  • 提供Web管理界面
  • 支持文件压缩打包

注意: 本服务仅用于合法的文件下载用途,请遵守相关法律法规和网站使用条款。