diff --git a/pom.xml b/pom.xml index 6f773c7..07dfcc2 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.qcloud cos_migrate_tool - 1.4.11 + 1.4.12 jar UTF-8 @@ -52,7 +52,7 @@ com.qcloud cos_api - 5.6.58 + 5.6.126 diff --git a/src/main/java/com/qcloud/cos_migrate_tool/config/CommonConfig.java b/src/main/java/com/qcloud/cos_migrate_tool/config/CommonConfig.java index a4727ea..f7f4f77 100644 --- a/src/main/java/com/qcloud/cos_migrate_tool/config/CommonConfig.java +++ b/src/main/java/com/qcloud/cos_migrate_tool/config/CommonConfig.java @@ -18,7 +18,8 @@ public class CommonConfig { private String sk; private String token; private String cosPath; - private boolean enableHttps; + private boolean enableHttps = false; + private boolean isShortConnection = false; private boolean entireFileMd5Attached; private int taskExecutorNumber = 68; private StorageClass storageClass = StorageClass.Standard; @@ -525,4 +526,19 @@ public long getBigFileUploadPartSize() { public void setBigFileUploadPartSize(long bigFileUploadPartSize) { this.bigFileUploadPartSize = bigFileUploadPartSize; } + + public boolean isShortConnection() { + return isShortConnection; + } + + public void setShortConnection(String shortConnection) throws IllegalArgumentException { + if (shortConnection.equalsIgnoreCase("true")) { + isShortConnection = true; + } else if (shortConnection.equalsIgnoreCase("false")) { + isShortConnection = false; + } else { + throw new IllegalArgumentException("invalid short connection config. only support true/false"); + } + } + } 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 039304b..c43cb0e 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 @@ -34,6 +34,7 @@ public class ConfigParser { private static final String COMMON_COSPATH = "cosPath"; private static final String COMMON_DB_COSPATH = "dbCosPath"; private static final String COMMON_HTTPS = "https"; + private static final String COMMON_SHORT_CONNECTION = "shortConnection"; private static final String COMMON_TMP = "tmpFolder"; private static final String COMMON_SMALL_FILE_ThRESHOLD = "smallFileThreshold"; private static final String COMMON_STORAGE_CLASS = "storageClass"; @@ -489,6 +490,11 @@ private boolean initCommonConfig(Preferences prefs, CommonConfig commonConfig) { assert (enableHttpsStr != null); commonConfig.setEnableHttps(enableHttpsStr); + String shortConnectionStr = getConfigValue(prefs, COMMON_SECTION_NAME, COMMON_SHORT_CONNECTION); + if (shortConnectionStr != null && !shortConnectionStr.trim().isEmpty()) { + commonConfig.setShortConnection(shortConnectionStr); + } + String tmpFolder = getConfigValue(prefs, COMMON_SECTION_NAME, COMMON_TMP); assert (tmpFolder != null); commonConfig.setTempFileFolder(tmpFolder); diff --git a/src/main/java/com/qcloud/cos_migrate_tool/task/MigrateCopyBucketTaskExecutor.java b/src/main/java/com/qcloud/cos_migrate_tool/task/MigrateCopyBucketTaskExecutor.java index 30d8b12..650113e 100644 --- a/src/main/java/com/qcloud/cos_migrate_tool/task/MigrateCopyBucketTaskExecutor.java +++ b/src/main/java/com/qcloud/cos_migrate_tool/task/MigrateCopyBucketTaskExecutor.java @@ -57,6 +57,11 @@ public MigrateCopyBucketTaskExecutor(CopyBucketConfig config) { clientConfig.setHttpProtocol(HttpProtocol.http); } + // 源也是cos的,就直接使用一样的配置,没有再像从其他云一样使用单独的src配置 + if (config.isShortConnection()) { + clientConfig.setShortConnection(); + } + if (config.getSrcEndpointSuffix() != null) { clientConfig.setEndPointSuffix(config.getSrcEndpointSuffix()); } diff --git a/src/main/java/com/qcloud/cos_migrate_tool/task/MigrateCspTaskExecutor.java b/src/main/java/com/qcloud/cos_migrate_tool/task/MigrateCspTaskExecutor.java index 03b8508..7f58a18 100644 --- a/src/main/java/com/qcloud/cos_migrate_tool/task/MigrateCspTaskExecutor.java +++ b/src/main/java/com/qcloud/cos_migrate_tool/task/MigrateCspTaskExecutor.java @@ -50,6 +50,8 @@ public MigrateCspTaskExecutor(CopyFromCspConfig config) { clientConfig.setHttpProtocol(HttpProtocol.http); } + // 没有使用common config里的短链接,csp一般没有公有云一样的问题 + clientConfig.setRegion(new Region("")); clientConfig.setEndpointBuilder(new SuffixEndpointBuilder(config.getSrcEndpoint())); diff --git a/src/main/java/com/qcloud/cos_migrate_tool/task/TaskExecutor.java b/src/main/java/com/qcloud/cos_migrate_tool/task/TaskExecutor.java index b2c8e93..f1b84d3 100644 --- a/src/main/java/com/qcloud/cos_migrate_tool/task/TaskExecutor.java +++ b/src/main/java/com/qcloud/cos_migrate_tool/task/TaskExecutor.java @@ -105,6 +105,10 @@ public TaskExecutor(MigrateType migrateType, CommonConfig config) { clientConfig.setHttpProxyPort(config.getProxyPort()); } + if (config.isShortConnection()) { + clientConfig.setShortConnection(); + } + if (config.getClientEncrypt()) { this.cosClient = createEncryptClient(config, cred, clientConfig); } else {