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 {