# 搬迁组件说明文档

1.启动rabbitmq,修改fds/conf/app.conf,修改对应的addr

image-20220224150804030

  1. 目录结构

    base:通用基础的方法

    conf:配置文件

    migu_msg:rabbitmq封装的方法体

    models: 模型及函数方法

    Vender: 本地缓存的所需的依赖项

  2. 启动流程 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
}
Last Updated: 5/14/2023, 12:30:43 AM