# vod-migrate **Repository Path**: mirrors_tencentyun/vod-migrate ## Basic Information - **Project Name**: vod-migrate - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-08-18 - **Last Updated**: 2025-08-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ![logo](https://main.qcloudimg.com/raw/60c78bca2cb225c653ca11ed0568cb57.jpg) ## 简介 VOD Migrate Tool 是一个集成了数据迁移功能的一体化工具。通过编写简单的配置文件,用户可以将源地址媒体文件快速迁移至 VOD 中。 ## 支持的数据源 * [x] 本地文件夹 * [x] Url列表 * [x] 腾讯云 COS * [x] AWS S3 * [x] 阿里云 OSS * [x] 七牛云 对象存储 ## 使用环境 #### 系统环境 支持 Windows、Linux 和 macOS 系统。 #### 软件依赖 - Python 2.7/3.4+。 - 最新版本的 pip。 ## 安装 ### 通过 Pip 安装(推荐) 您可以通过 pip 安装方式将 SDK 安装到您的项目中,如果您的项目环境尚未安装 pip,请详细参见 pip 官网安装。 ``` pip install vodmigrate ``` ### 通过源码包安装 下载最新代码,解压后: ```shell git clone https://github.com/tencentyun/vod-migrate.git cd vod-migrate python setup.py install ``` ## 使用示例 执行命令: vodmigrate config.toml > ? > - 迁移完成后,结果将输出到配置项"migrateResultOutputPath"对应的目录,文件名为: vod_migrate_result.txt。 ## 配置文件说明 配置文件采用toml格式(参考:test/config_template.toml,请确保文件为UTF-8编码),内容可以分为以下几部分: #### 1. 配置迁移类型 type 表示迁移类型,用户根据迁移需求填写对应的标识。例如,需要将本地数据迁移至 VOD,则 `[migrateType]` 的配置内容是 `type=migrateLocal` 。 ``` [migrateType] type="migrateLocal" ``` 目前支持的迁移类型如下: | migrateType | 描述 | | :----------- | :----------------------: | | migrateLocal | 从本地迁移至 VOD | | migrateUrl | 下载 URL 迁移到 VOD | | migrateCos | 从 腾讯云 COS 迁移至 VOD | | migrateAws | 从 AWS S3 迁移至 VOD | | migrateAli | 从阿里云 OSS 迁移至 VOD | | migrateQiniu | 从七牛迁移至 VOD | #### 2. 配置迁移任务 用户根据实际的迁移需求进行相关配置,主要包括迁移至 VOD 信息配置及迁移任务相关配置。 ``` # 迁移工具公共配置 [common] secretId = "SECRETID" secretKey = "SECRETKEY" region = 'REGION' subAppId = 0 concurrency = 5 supportMediaClassification = [ 'video', 'audio', 'image' ] excludeMediaType = [ ] migrateDbStoragePath = '' migrateResultOutputPath = '' ``` | 名称 | 描述 | | :------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | | secretId | 用户密钥 SecretId,请将 `SECRETID` 替换为您的真实密钥信息。可前往 [访问管理控制台](https://console.cloud.tencent.com/cam/capi) 中的云 API 密钥页面查看获取 | | secretKey | 用户密钥 SecretKey,请将 `SECRETKEY` 替换为您的真实密钥信息。可前往 [访问管理控制台](https://console.cloud.tencent.com/cam/capi) 中的云 API 密钥页面查看获取 | | region | 接入点地域,即请求到哪个地域的云点播服务器,不同于存储地域,具体参考支持的 [地域列表](https://cloud.tencent.com/document/product/266/31756#.E5.9C.B0.E5.9F.9F.E5.88.97.E8.A1.A8)。 | | subAppId | 点播[子应用](https://cloud.tencent.com/document/product/266/14574) ID 。如果需要将文件迁移到子应用,则将该字段填写为子应用 ID;否则无需填写该字段。 | | concurrency | 并发迁移文件的数量,最大值50 | | supportMediaClassification | 支持迁移的媒体类型列表:video(视频),audio(音频),image(图像) | | excludeMediaType | 需要排除的文件类型列表 | | migrateDbStoragePath | 迁移db保存路径,为空表示当前目录 | | migrateResultOutputPath | 迁移结果保存路径(一条迁移记录对应一行json格式字符串),为空表示当前目录 | 文件类型说明: - 视频:MP4、TS、FLV、WMV、ASF、RM、RMVB、MPG、MPEG、3GP、MOV、WEBM、MKV、AVI,不支持HLS、DASH - 音频:MP3、M4A、FLAC、OGG、WAV - 图像:JPG、JPEG、PNG、GIF、BMP、TIFF、AI、CDR、EPS #### 3. 配置数据源信息 根据[migrateType]的迁移类型配置相应的分节。例如[migrateType]的配置内容是type=migrateLocal, 则用户只需配置[migrateLocal]分节即可。 ##### 3.1 配置本地数据源 migrateLocal 若从本地迁移至 VOD,则进行该部分配置,具体配置项及说明如下: ``` # 从本地迁移到 VOD 配置分节 [migrateLocal] localPath = '' excludes = [ ] ``` | 配置项 | 描述 | | :-------- | :-------------------------------------------------------------------: | | localPath | 本地路径,要求格式为绝对路径 | | excludes | 要排除的目录的绝对路径,表示将 localPath 下面某些目录下文件不进行迁移 | ##### 3.2 配置 URL 列表数据源 migrateUrl 若从指定 URL 列表迁移至 VOD,则进行该部分配置,具体配置项及说明如下: ``` # 从 URL 列表下载迁移到 VOD 配置分节 [migrateUrl] urllistPath = 'D:\folder\urllist.txt' ``` | 配置项 | 描述 | | :---------- | :------------------------------------------------------------------------: | | urllistPath | 存储URL 列表的文件绝对路径;文件的内容为 URL 文本,一行一条 URL 原始地址。 | ##### 3.3 配置 COS 数据源 migrateCos 若从腾讯云 COS 迁移至 VOD,则进行该部分配置,具体配置项及说明如下: ``` # 从腾讯云 COS 迁移至 VOD 配置分节 [migrateCos] region = 'ap-shanghai' bucket = 'examplebucket-1250000000' secretId = 'COS_SECRETID' secretKey = 'COS_SECRETKEY' prefix = '' ``` | 配置项 | 描述 | | :-------- | :---------------------------------------------------------------------------------------------------------: | | region | Bucket 的 Region 信息,请参照 [可用地域](https://cloud.tencent.com/document/product/436/6224) | | bucket | Bucket 的名称,命名格式为 `` ,即 Bucket 名必须包含 APPID,例如 examplebucket-1250000000 | | secretId | Bucket 隶属的用户的密钥 SecretId,可在 [云 API 密钥](https://console.cloud.tencent.com/cam/capi) 查看。 | | secretKey | Bucket 隶属的用户的密钥 secret_key,可在 [云 API 密钥](https://console.cloud.tencent.com/cam/capi) 查看。 | | prefix | 要迁移的路径的前缀,如果是迁移 Bucket 下所有的数据,则 prefix 为空 | ##### 3.4 配置 AWS 数据源 migrateAws 若从 AWS 迁移至 VOD,则进行该部分配置,具体配置项及说明如下: ``` # 从 AWS 迁移到 VOD 配置分节 [migrateAws] region = 'ap-northeast-2' bucket = 'bucket-aws' accessKeyId = 'AccessKeyId' accessKeySecret = 'AccessKeySecret' prefix = '' ``` | 配置项 | 描述 | | :-------------- | :----------------------------------------------------------------: | | region | AWS 对象存储 Region | | bucket | AWS 对象存储 Bucket 名称 | | accessKeyId | 将 AccessKeyId 替换为用户的密钥 | | accessKeySecret | 将 AccessKeySecret 替换为用户的密钥 | | prefix | 要迁移的路径的前缀,如果是迁移 Bucket 下所有的数据,则 prefix 为空 | ##### 3.5 配置阿里 OSS 数据源 migrateAli 若从阿里云 OSS 迁移至 VOD,则进行该部分配置,具体配置项及说明如下: ``` # 从阿里 OSS 迁移到 VOD 配置分节 [migrateAli] bucket = 'bucket-aliyun' accessKeyId = 'yourAccessKeyId' accessKeySecret = 'yourAccessKeySecret' endPoint = 'oss-cn-hangzhou.aliyuncs.com' prefix = '' ``` | 配置项 | 描述 | | :-------------- | :----------------------------------------------------------------: | | bucket | 阿里云 OSS Bucket 名称 | | accessKeyId | 将 yourAccessKeyId 替换为用户的密钥 | | accessKeySecret | 将 yourAccessKeySecret 替换为用户的密钥 | | endPoint | 阿里云 endpoint 地址 | | prefix | 要迁移的路径的前缀,如果是迁移 Bucket 下所有的数据, 则 prefix 为空 | ##### 3.6 配置七牛数据源 migrateQiniu 若从七牛迁移至 VOD,则进行该部分配置,具体配置项及说明如下: ``` # 从七牛迁移到 VOD 配置分节 [migrateQiniu] bucket = 'bucket-qiniu' accessKeyId = 'AccessKey' accessKeySecret = 'SecretKey' endPoint = 'www.bkt.clouddn.com' prefix = '' ``` | 配置项 | 描述 | | :-------------- | :----------------------------------------------------------------: | | bucket | 七牛对象存储 Bucket 名称 | | accessKeyId | 将 AccessKey 替换为用户的密钥 | | accessKeySecret | 将 SecretKey 替换为用户的密钥 | | endPoint | 七牛下载地址,对应 downloadDomain | | prefix | 要迁移的路径的前缀,如果是迁移 Bucket 下所有的数据,则 prefix 为空 | ## 限制说明 - 该工具定位为一次性的迁移工具;迁移分为:源站文件扫描、迁移中、迁移完成,三个阶段。文件扫描完成后,如果配置需变更,这时候需将db文件清空(删除migrate.db或者修改db存储路径),以规避配置文件md5校验报错; - 迁移的文件必须显示的带后缀; - 暂不支持HLS/DASH迁移; - 迁移后无法维持原视频的目录关系、每个视频都是独立的 FileId,相互无关联;