Skip to content

Commit

Permalink
Merge pull request #46 from tencentyun/remove_other
Browse files Browse the repository at this point in the history
1.4.14
  • Loading branch information
zephyr2222 authored Apr 18, 2024
2 parents 9dba35c + a8302fb commit 2fbb983
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 123 deletions.
122 changes: 0 additions & 122 deletions conf/config.ini
Original file line number Diff line number Diff line change
Expand Up @@ -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=
Binary file not shown.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.qcloud</groupId>
<artifactId>cos_migrate_tool</artifactId>
<version>1.4.13</version>
<version>1.4.14</version>
<packaging>jar</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
Expand Down
18 changes: 18 additions & 0 deletions src/main/java/com/qcloud/cos_migrate_tool/config/ConfigParser.java
Original file line number Diff line number Diff line change
Expand Up @@ -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";
Expand Down Expand Up @@ -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);
Expand Down

0 comments on commit 2fbb983

Please sign in to comment.