# 搬迁组件说明文档
1.启动rabbitmq,修改fds/conf/app.conf,修改对应的addr
目录结构
base:通用基础的方法
conf:配置文件
migu_msg:rabbitmq封装的方法体
models: 模型及函数方法
Vender: 本地缓存的所需的依赖项
启动流程 bee run 或直接运行fds 可执行文件,首先解析命令行参数,然后beego加载app.conf ,运行boot.go 初始化参数、日志、MQ,然后运行监听MQ任务消息,当task.TransferType ==1 走HLS 下载,
task.TransferType == 2时,判断消息体TransferContentURL内是否含有sftp,有则走SFTPFileDownload(),否则走FtpFileDownload(),消息结构体包含以下字段
type ResultJson struct { TaskId string `json:"taskId"` //任务ID //TaskType string `json:"taskType"` ResultCode string `json:"resultCode"` //状态码 000表示成功 ResultMsg string `json:"resultMsg"` //返回描述信息 Opr string `json:"opr"` // 1表示搬迁开始,2表示搬迁完成 ResponseTime string `json:"responseTime"` Md5Str string `json:"md5Str"` }
4.DRMhls download 请求文件的m3u8URL,下载先命名为xxx.tmp,出现失败会删除临时文件,正常解析m3u8,隐藏http,然后一次解析下载ts,flowhlsdownload 会将大ts进行分片下载,根据结束符停止,最终将m3u8改名为正式名
搬迁任务消息体方法SendChan()调用SendCarryFileInjTaskMq
{
"taskId":"11",
"transferContentURL":"http://36.155.98.99:10085/testLiveC/livet/540p/250/index.m3u8",
"transferStoreURL":"/opt/temp/index.m3u8", //存储位置
"transferType":"1",
"md5Gen":"false",
"hlsType":1
}
交接文档 →