C:\\Users\\Administrator\\Downloads\\cos_migrate
unzip cos_migrate_tool_v5-master.zip && cd cos_migrate_tool_v5-master
COS_Migrate_tool|——conf #配置文件所在目录| |——config.ini #迁移配置文件|——db #存储迁移成功的记录|——dep #程序主逻辑编译生成的JAR包|——log #工具执行中生成的日志|——opbin #用于编译的脚本|——result #用于保存迁移成功记录的目录,记录文件名为 "日期.out",格式为 "绝对路径\\t文件大小\\t最后修改时间"|——src #工具的源码|——tmp #临时文件存储目录|——.gitignore #git版本管理忽略的文件与文件夹|——pom.xml #项目配置文件|——README #说明文档|——start_migrate.sh #Linux 下迁移启动脚本|——start_migrate.bat #Windows 下迁移启动脚本
./conf/config.ini
),config.ini 内容可以分为以下几部分:type=migrateLocal
。[migrateType]type=migrateLocal
# 迁移工具的公共配置分节,包含了需要迁移到目标 COS 的账户信息。[common]secretId=COS_SECRETIDsecretKey=COS_SECRETKEYbucketName=examplebucket-1250000000region=ap-guangzhoustorageClass=StandardcosPath=/https=offtmpFolder=./tmpsmallFileThreshold=5242880smallFileExecutorNum=64bigFileExecutorNum=8entireFileMd5Attached=onexecuteTimeWindow=00:00,24:00outputFinishedFileFolder=./resultresume=falseskipSamePath=falserequestTryCount=5
名称 | 描述 | 默认值 |
secretId | - | |
secretKey | - | |
bucketName | 目的 Bucket 的名称, 命名格式为 <BucketName-APPID> ,即 Bucket 名必须包含 APPID,例如 examplebucket-1250000000 | - |
region | 目的 Bucket 的 Region 信息。COS 的地域简称请参照 地域和访问域名 | - |
storageClass | 数据迁移后的存储类型,可选值为 Standard(标准存储)、Standard_IA(低频存储)、Archive(归档存储)、Maz_Standard(标准存储多 AZ)、Maz_Standard_IA(低频存储多 AZ),相关介绍请参见 存储类型概述 | Standard |
cosPath | 要迁移到的 COS 路径。 / 表示迁移到 Bucket 的根路径下,/folder/doc/ 表示要迁移到 Bucket的/folder/doc/ 下,若 /folder/doc/ 不存在,则会自动创建路径 | / |
https | 是否使用 HTTPS 传输:on 表示开启,off 表示关闭。开启传输速度较慢,适用于对传输安全要求高的场景 | off |
tmpFolder | 从其他云存储迁移至 COS 的过程中,用于存储临时文件的目录,迁移完成后会删除。要求格式为绝对路径: Linux 下分隔符为单斜杠,例如 /a/b/c Windows 下分隔符为两个反斜杠,例如 E:\\\\a\\\\b\\\\c 默认为工具所在路径下的 tmp 目录 | ./tmp |
smallFileThreshold | 小文件阈值的字节,大于等于这个阈值使用分块上传,否则使用简单上传,默认5MB(5242880 Byte) | 5242880 |
smallFileExecutorNum | 小文件(文件小于 smallFileThreshold)的并发度,使用简单上传。如果是通过外网来连接 COS,且带宽较小,请减小该并发度 | 64 |
bigFileExecutorNum | 大文件(文件大于等于 smallFileThreshold)的并发度,使用分块上传。如果是通过外网来连接 COS,且带宽较小,请减小该并发度 | 8 |
entireFileMd5Attached | 表示迁移工具将全文的 MD5 计算后,存入文件的自定义头部 x-cos-meta-md5 中,用于后续的校验,因为 COS 的分块上传的大文件的 etag 不是全文的 MD5 | on |
executeTimeWindow | 执行时间窗口,时刻粒度为分钟,该参数定义迁移工具每天执行的时间段。例如:
参数 03:30,21:00,表示在凌晨 03:30 到晚上 21:00 之间执行任务,其他时间则会进入休眠状态,休眠状态暂停迁移会保留迁移进度,直到下一个时间窗口自动继续执行。注意后面的时间点必须大于前面的时间点。 | 00:00,24:00 |
outputFinishedFileFolder | 这个目录保存迁移成功的结果,结果文件会按照日期命名,例如 ./result/2021-05-27.out ,其中./result 为已创建的目录。文件内容每一行的格式为:绝对路径\\t文件大小\\t最后修改时间。设置为空,则不输出结果。 | ./result |
resume | 是否接着最后一次运行的结果,继续往下遍历源的文件列表。默认从头开始。 | false |
skipSamePath | 如果 COS 上已经有相同的文件名,是否直接跳过。默认不跳过,即覆盖原有文件。 | false |
requestTryCount | 每个文件上传总的尝试次数。 | 5 |
# 从本地迁移到 COS 配置分节[migrateLocal]localPath=E:\\\\code\\\\java\\\\workspace\\\\cos_migrate_tool\\\\test_dataexcludes=ignoreModifiedTimeLessThanSeconds=
配置项 | 描述 |
localPath | 本地目录,要求格式为绝对路径: Linux 下分隔符为单斜杠,例如 /a/b/c Windows 下分隔符为两个反斜杠,例如 E:\\\\a\\\\b\\\\c 注意:此参数只能填目录的路径,不能填具体文件的路径,否则会导致目标对象名解析错误,在 cosPath=/ 情况下,还会错误地解析成创桶请求。 |
excludes | 要排除的目录或者文件的绝对路径,表示将 localPath 下面某些目录或者文件不进行迁移,多个绝对路径之前用分号分割,不填表示 localPath 下面的全部迁移。 |
ignoreModifiedTimeLessThanSeconds | 排除更新时间与当前时间相差不足一定时间段的文件,单位为秒,默认不设置,表示不根据 lastmodified 时间进行筛选,适用于客户在更新文件的同时又在运行迁移工具,并要求不把正在更新的文件迁移上传到 COS,例如设置为300,表示只上传更新了5分钟以上的文件。 |
sh start_migrate.sh
sh start_migrate.sh -Dcommon.cosPath=/savepoint0403_10/
本页内容是否解决了您的问题?