diff --git a/conf/config.ini b/conf/config.ini
index 2858cef..d620e61 100644
--- a/conf/config.ini
+++ b/conf/config.ini
@@ -118,125 +118,3 @@ fileListPath=/data/config/myFileList.txt
# 上传前是否检查服务端有数据,由开关 skipSamePath 控制. 执行顺序是先判断 checkLocalRecord, 再判断 skipSamePath, 其中任何一个判断结果跳过,再跳过不执行上传
# 这个开关不会控制上传后是否记录数据库, 一定会记录的.
checkLocalRecord=true
-
-## 从阿里迁移到COS的配置分节
-[migrateAli]
-bucket=mybucket-test
-accessKeyId=xxxxxxxxxx
-accessKeySecret=yyyyyyyyyyy
-#友商的地址
-endPoint=oss-cn-shenzhen.aliyuncs.com
-# 要迁移的路径的前缀, 如果是迁移bucket下所有的数据, 则prefix为空
-prefix=
-# 如果要使用代理进行访问,则填写代理IP地址
-proxyHost=
-# 代理的端口
-proxyPort=
-# 访问ali时, 是否使用HTTPS传输(传输速度较慢,适用于对传输安全要求高的场景), on开启, off关闭
-srcHttps=off
-# 访问ali时, 连接ali服务器的超时时间,单位ms, 默认5000
-#srcConnectTimeout=5000
-# 访问ali时, 读取ali响应的超时时间,单位ms, 默认10000
-#srcSocketTimeout=10000
-
-# 从七牛迁移到COS
-[migrateQiniu]
-# 从七牛迁移到COS的配置分节
-# 七牛的bucket名称
-bucket=mybucket
-# 七牛的账户信息
-accessKeyId=xxxxxxxxxx
-accessKeySecret=yyyyyyyyyyyyyyyy
-# 七牛的下载地址, 对应downloadDomain
-endPoint=wwww.bkt.clouddn.com
-# 要迁移的路径的前缀, 如果是迁移bucket下所有的数据, 则prefix为空
-prefix=
-# 如果要使用代理进行访问,则填写代理地址
-proxyHost=
-# 代理端口
-proxyPort=
-#公有读bucket可以填off, 其余填on. 默认on
-needSign=on
-
-# 从通过URL列表进行迁移,URL列表里面填写的源文件的下载路径,该路径可以直接下载下来,迁移工具会将其再上传到COS上去
-[migrateUrl]
-# 使用url列表迁移,如果urllistPath填的是目录,那么就会把这个目录下所有文件都当作urllist文件去扫描迁移
-# 对于linux绝对路径, 如/a/b/c, 对于windows绝对路径,注意分隔符为两个反斜杠,如E:\\a\\b\\c
-urllistPath=/data/mydata/url
-
-#on:迁移时不去head url,off:会head url,默认off。不去head可能导致源更新了,迁移工具却不知道,适用于确定源不更新,加快迁移速度。
-isSkipHead=
-
-## 从AWS迁移到COS的配置分节
-[migrateAws]
-# aws的bucket
-bucket=aws-emr-test
-accessKeyId=xxxxxxxx
-accessKeySecret=yyyyyyyyyy
-# aws的endpoint地址, 必须使用域名, 不能使用region
-endPoint=s3.us-east-1.amazonaws.com
-# 要迁移的路径的前缀, 如果是迁移所有的,则prefix为空
-prefix=
-# 迁移的代理地址
-proxyHost=
-# 代理端口
-proxyPort=
-# 访问aws时, 是否使用HTTPS传输(传输速度较慢,适用于对传输安全要求高的场景), on开启, off关闭
-srcHttps=off
-# 访问aws时, 连接aws服务器的超时时间,单位ms, 默认5000
-#srcConnectTimeout=5000
-# 访问aws时, 读取aws响应的超时时间,单位ms, 默认10000
-#srcSocketTimeout=10000
-
-# bucket copy
-[migrateBucketCopy]
-# 源 bucket的region信息. COS地域的简称请参照 https://www.qcloud.com/document/product/436/6224
-srcRegion=ap-shanghai
-# 源 Bucket的名称, 命名规则为{name}-{appid},即bucket名必须包含appid, 例如movie-1251000000
-srcBucketName=mysrcbucket-1251668555
-# 源bucket的endpoint suffix, 一般情况不用填写,适用于自定义域名CNAME到COS上传域名的客户.工具会在自动在在suffix前加上${bucketname}。最终形成的域名是
-# ${bucketName}.${srcEndPointSuffix}. srcEndPointSuffix的优先级比srcRegion高,如果设置了srcEndPointSuffix则会以srcEndPointSuffix来补充域名
-srcEndPointSuffix=
-# 源bucket隶属的用户的秘钥 secret_id (可在 https://console.qcloud.com/capi 查看)
-# 因为bucket copy支持跨账号,所以如果是另外一个账户的数据,则srcSecretId和common中的secretId不同
-# 如果是同一客户的数据, 则srcSecretId和common中的secretId相同
-srcSecretId=xxxxxxxxxxx
-# 源bucket隶属的用户的秘钥 secret_key(可在 https://console.qcloud.com/capi 查看)
-srcSecretKey=yyyyyyyyyyyyyyyy
-# 如果使用临时密钥访问存储桶,此处配置临时密钥的Token,该密钥需要有源桶的GetBucket(列出存储桶对象)和HeadObject权限
-# srcToken=zzzzzzzzzzz
-# 要迁移的cos路径的
-srcCosPath=/
-# 如果只需要迁移部分文件,可以通过srcFileList指定迁移文件列表,例如,只需要迁移aaa/1.jpg和bb/2.jpg,则:
-# $cat /data/fileList.txt
-# aaa/1.jpg
-# bbb/2.jpg
-#srcFileList=/data/fileList.txt
-
-# 存储类型, 标准(Standard), 多AZ标准(Maz_Standard), 低频(Standard_IA), 多AZ低频(Maz_Standard_IA),
-# 智能分层(Intelligent_Tiering), 多AZ智能分层(Maz_Intelligent_Tiering), 归档(Archive), 深度归档(Deep_Archive)
-# 如果为空则代表复制所有的存储类型
-srcStorageClass=
-
-[migrateCsp]
-bucket=xxx
-accessKeyId=xxx
-accessKeySecret=xxx
-endPoint=xxx.com
-
-#指定了uriList之后,就只迁uri列表中的数据,不指定则是自动list全部数据然后迁移。uri格式不带域名,如:/dir1/subdir2/a.txt
-uriList=/data/uriList.txt
-prefix=
-
-[migrateUpyun]
-# 从又拍迁移
-bucket=xxx
-accessKeyId=又拍云操作员id
-accessKeySecret=又拍云操作员密码
-prefix=
-#获取文件列表的顺序,true为正序,false为逆序
-acsendingOrder=true
-
-#又拍云sdk限制,这个proxy会被设置成全局的proxy
-proxyHost=
-proxyPort=
diff --git a/dep/cos_migrate_tool-1.4.13-jar-with-dependencies.jar b/dep/cos_migrate_tool-1.4.14-jar-with-dependencies.jar
similarity index 97%
rename from dep/cos_migrate_tool-1.4.13-jar-with-dependencies.jar
rename to dep/cos_migrate_tool-1.4.14-jar-with-dependencies.jar
index db68b47..ed68be1 100644
Binary files a/dep/cos_migrate_tool-1.4.13-jar-with-dependencies.jar and b/dep/cos_migrate_tool-1.4.14-jar-with-dependencies.jar differ
diff --git a/pom.xml b/pom.xml
index 96019b5..1ceb162 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,7 @@
4.0.0
com.qcloud
cos_migrate_tool
- 1.4.13
+ 1.4.14
jar
UTF-8
diff --git a/src/main/java/com/qcloud/cos_migrate_tool/config/ConfigParser.java b/src/main/java/com/qcloud/cos_migrate_tool/config/ConfigParser.java
index b476be1..985b26d 100644
--- a/src/main/java/com/qcloud/cos_migrate_tool/config/ConfigParser.java
+++ b/src/main/java/com/qcloud/cos_migrate_tool/config/ConfigParser.java
@@ -23,6 +23,7 @@ public class ConfigParser {
private static final String MIGRATE_TYPE_SECTION_NAME = "migrateType";
private static final String MIGRATE_TYPE = "type";
+ private static final String DEPRECATED_TYPE = "deprecatedType";
private static final String COMMON_SECTION_NAME = "common";
private static final String COMMON_REGION = "region";
@@ -323,6 +324,23 @@ private boolean initMigrateType(Preferences prefs) {
String migrateTypeStr = getConfigValue(prefs, MIGRATE_TYPE_SECTION_NAME, MIGRATE_TYPE);
assert (migrateTypeStr != null);
migrateType = MigrateType.fromValue(migrateTypeStr);
+
+ /* check deprecated type
+ [migrateType]
+ type=migrateLocal
+ deprecatedType=on
+ */
+
+ String deprecatedStr = getConfigValue(prefs, MIGRATE_TYPE_SECTION_NAME, DEPRECATED_TYPE);
+ if (!"on".equalsIgnoreCase(deprecatedStr)) {
+ if (migrateType != MigrateType.MIGRATE_FROM_LOCAL) {
+ String errMsg = String.format("Deprecated type: %s is no longer supported, only %s is supported.", migrateType, MigrateType.MIGRATE_FROM_LOCAL);
+ System.err.println(errMsg);
+ log.error(errMsg);
+ return false;
+ }
+ }
+
} catch (IllegalArgumentException e) {
String errMsg = String.format("invalid config. section:%s, key:%s",
MIGRATE_TYPE_SECTION_NAME, MIGRATE_TYPE);