Skip to content

Commit dd62b5a

Browse files
author
YangSen-qn
committed
connect config support get from server
1 parent 8bfca1e commit dd62b5a

File tree

10 files changed

+208
-68
lines changed

10 files changed

+208
-68
lines changed

library/src/androidTest/java/com/qiniu/android/TestConfig.java

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,28 +8,25 @@
88
*/
99
public final class TestConfig {
1010
// TODO: 2020-05-09 bad token for testPutBytesWithFixedZoneUseBackupDomains
11-
// 华东上传凭证
11+
// 华东上传凭证
1212
public static final String bucket_z0 = "kodo-phone-zone0-space";
13-
public static final String token_z0 = "dxVQk8gyk3WswArbNhdKIwmwibJ9nFsQhMNUmtIM:gk-emjEYF779GyuD2PLjrJGNeWw=:eyJzY29wZSI6ImtvZG8tcGhvbmUtem9uZTAtc3BhY2UiLCJkZWFkbGluZSI6MTY3NDgwMTE1NSwgInJldHVybkJvZHkiOiJ7XCJmb29cIjokKHg6Zm9vKSwgXCJiYXJcIjokKHg6YmFyKSwgXCJtaW1lVHlwZVwiOiQobWltZVR5cGUpLCBcImhhc2hcIjokKGV0YWcpLCBcImtleVwiOiQoa2V5KSwgXCJmbmFtZVwiOiQoZm5hbWUpfSJ9";
13+
public static final String token_z0 = "dxVQk8gyk3WswArbNhdKIwmwibJ9nFsQhMNUmtIM:tDBTUFicqlZuIh5_Qp0LJeVir7k=:eyJzY29wZSI6ImtvZG8tcGhvbmUtem9uZTAtc3BhY2UiLCJkZWFkbGluZSI6MTY5MDc3MzI0NywgInJldHVybkJvZHkiOiJ7XCJmb29cIjokKHg6Zm9vKSwgXCJiYXJcIjokKHg6YmFyKSwgXCJtaW1lVHlwZVwiOiQobWltZVR5cGUpLCBcImhhc2hcIjokKGV0YWcpLCBcImtleVwiOiQoa2V5KSwgXCJmbmFtZVwiOiQoZm5hbWUpLCBcImZzaXplXCI6JChmc2l6ZSl9In0=";
1414
// 华北上传凭证
1515
public static final String bucket_z1 = "kodo-phone-zone1-space";
16-
public static final String token_z1 = "dxVQk8gyk3WswArbNhdKIwmwibJ9nFsQhMNUmtIM:Vo4gv4uabU3RKpH0R-PxhU6tj6c=:eyJzY29wZSI6ImtvZG8tcGhvbmUtem9uZTEtc3BhY2UiLCJkZWFkbGluZSI6MTY3NDgwMTE1NSwgInJldHVybkJvZHkiOiJ7XCJmb29cIjokKHg6Zm9vKSwgXCJiYXJcIjokKHg6YmFyKSwgXCJtaW1lVHlwZVwiOiQobWltZVR5cGUpLCBcImhhc2hcIjokKGV0YWcpLCBcImtleVwiOiQoa2V5KSwgXCJmbmFtZVwiOiQoZm5hbWUpfSJ9";
16+
public static final String token_z1 = "dxVQk8gyk3WswArbNhdKIwmwibJ9nFsQhMNUmtIM:2dMDOhb4sL3CArNCGDJ_0qCKBMM=:eyJzY29wZSI6ImtvZG8tcGhvbmUtem9uZTEtc3BhY2UiLCJkZWFkbGluZSI6MTY5MDc3MzI0NywgInJldHVybkJvZHkiOiJ7XCJmb29cIjokKHg6Zm9vKSwgXCJiYXJcIjokKHg6YmFyKSwgXCJtaW1lVHlwZVwiOiQobWltZVR5cGUpLCBcImhhc2hcIjokKGV0YWcpLCBcImtleVwiOiQoa2V5KSwgXCJmbmFtZVwiOiQoZm5hbWUpLCBcImZzaXplXCI6JChmc2l6ZSl9In0=";
1717
// 华南上传凭证
1818
public static final String bucket_z2 = "kodo-phone-zone2-space";
19-
public static final String token_z2 = "dxVQk8gyk3WswArbNhdKIwmwibJ9nFsQhMNUmtIM:juVQn2wvtbrFEy-J2Etq-JqO6UE=:eyJzY29wZSI6ImtvZG8tcGhvbmUtem9uZTItc3BhY2UiLCJkZWFkbGluZSI6MTY3NDgwMTE1NSwgInJldHVybkJvZHkiOiJ7XCJmb29cIjokKHg6Zm9vKSwgXCJiYXJcIjokKHg6YmFyKSwgXCJtaW1lVHlwZVwiOiQobWltZVR5cGUpLCBcImhhc2hcIjokKGV0YWcpLCBcImtleVwiOiQoa2V5KSwgXCJmbmFtZVwiOiQoZm5hbWUpfSJ9";
19+
public static final String token_z2 = "dxVQk8gyk3WswArbNhdKIwmwibJ9nFsQhMNUmtIM:HPoYQEVZai_Cylt4SmPH8i8sDG0=:eyJzY29wZSI6ImtvZG8tcGhvbmUtem9uZTItc3BhY2UiLCJkZWFkbGluZSI6MTY5MDc3MzI0NywgInJldHVybkJvZHkiOiJ7XCJmb29cIjokKHg6Zm9vKSwgXCJiYXJcIjokKHg6YmFyKSwgXCJtaW1lVHlwZVwiOiQobWltZVR5cGUpLCBcImhhc2hcIjokKGV0YWcpLCBcImtleVwiOiQoa2V5KSwgXCJmbmFtZVwiOiQoZm5hbWUpLCBcImZzaXplXCI6JChmc2l6ZSl9In0=";
2020
// 北美上传凭证
2121
public static final String bucket_na0 = "kodo-phone-zone-na0-space";
22-
public static final String token_na0 = "dxVQk8gyk3WswArbNhdKIwmwibJ9nFsQhMNUmtIM:PDQxd9wAWd7_jV8UMR9dxnVtAac=:eyJzY29wZSI6ImtvZG8tcGhvbmUtem9uZS1uYTAtc3BhY2UiLCJkZWFkbGluZSI6MTY3NDgwMTE1NSwgInJldHVybkJvZHkiOiJ7XCJmb29cIjokKHg6Zm9vKSwgXCJiYXJcIjokKHg6YmFyKSwgXCJtaW1lVHlwZVwiOiQobWltZVR5cGUpLCBcImhhc2hcIjokKGV0YWcpLCBcImtleVwiOiQoa2V5KSwgXCJmbmFtZVwiOiQoZm5hbWUpfSJ9";
22+
public static final String token_na0 = "dxVQk8gyk3WswArbNhdKIwmwibJ9nFsQhMNUmtIM:BIfK7vFJcfokzbCYzJd6tTjbALs=:eyJzY29wZSI6ImtvZG8tcGhvbmUtem9uZS1uYTAtc3BhY2UiLCJkZWFkbGluZSI6MTY5MDc3MzI0NywgInJldHVybkJvZHkiOiJ7XCJmb29cIjokKHg6Zm9vKSwgXCJiYXJcIjokKHg6YmFyKSwgXCJtaW1lVHlwZVwiOiQobWltZVR5cGUpLCBcImhhc2hcIjokKGV0YWcpLCBcImtleVwiOiQoa2V5KSwgXCJmbmFtZVwiOiQoZm5hbWUpLCBcImZzaXplXCI6JChmc2l6ZSl9In0=";
2323
// 东南亚上传凭证
2424
public static final String bucket_as0 = "kodo-phone-zone-as0-space";
25-
public static final String token_as0 = "dxVQk8gyk3WswArbNhdKIwmwibJ9nFsQhMNUmtIM:Aj9HN9lRqpQzyX3EVno7BjMBkv8=:eyJzY29wZSI6ImtvZG8tcGhvbmUtem9uZS1hczAtc3BhY2UiLCJkZWFkbGluZSI6MTY3NDgwMTE1NSwgInJldHVybkJvZHkiOiJ7XCJmb29cIjokKHg6Zm9vKSwgXCJiYXJcIjokKHg6YmFyKSwgXCJtaW1lVHlwZVwiOiQobWltZVR5cGUpLCBcImhhc2hcIjokKGV0YWcpLCBcImtleVwiOiQoa2V5KSwgXCJmbmFtZVwiOiQoZm5hbWUpfSJ9";
25+
public static final String token_as0 = "dxVQk8gyk3WswArbNhdKIwmwibJ9nFsQhMNUmtIM:bqaQECyt5IqXEHm54cv_lZl0U-A=:eyJzY29wZSI6ImtvZG8tcGhvbmUtem9uZS1hczAtc3BhY2UiLCJkZWFkbGluZSI6MTY5MDc3MzI0NywgInJldHVybkJvZHkiOiJ7XCJmb29cIjokKHg6Zm9vKSwgXCJiYXJcIjokKHg6YmFyKSwgXCJtaW1lVHlwZVwiOiQobWltZVR5cGUpLCBcImhhc2hcIjokKGV0YWcpLCBcImtleVwiOiQoa2V5KSwgXCJmbmFtZVwiOiQoZm5hbWUpLCBcImZzaXplXCI6JChmc2l6ZSl9In0=";
2626
// 华北浙江2上传凭证
2727
public static final String bucket_cn_east_2 = "kodo-phone-cn-east-2";
28-
public static final String token_cn_east_2 = "dxVQk8gyk3WswArbNhdKIwmwibJ9nFsQhMNUmtIM:PDr1-LvnJ53Are_ZhhDVF4HwOPY=:eyJzY29wZSI6ImtvZG8tcGhvbmUtY24tZWFzdC0yIiwiZGVhZGxpbmUiOjE2NzQ4MDExNTUsICJyZXR1cm5Cb2R5Ijoie1wiZm9vXCI6JCh4OmZvbyksIFwiYmFyXCI6JCh4OmJhciksIFwibWltZVR5cGVcIjokKG1pbWVUeXBlKSwgXCJoYXNoXCI6JChldGFnKSwgXCJrZXlcIjokKGtleSksIFwiZm5hbWVcIjokKGZuYW1lKX0ifQ==";
29-
// 韩国亚太上传凭证
30-
public static final String bucket_ap_northeast_1 = "kodo-phone-ap-northeast-1";
31-
public static final String token_ap_northeast_1 = "dxVQk8gyk3WswArbNhdKIwmwibJ9nFsQhMNUmtIM:StRMMkmKvNZMCo6zTrUjaLO529E=:eyJzY29wZSI6ImtvZG8tcGhvbmUtYXAtbm9ydGhlYXN0LTEiLCJkZWFkbGluZSI6MTY3NDgwMTE1NSwgInJldHVybkJvZHkiOiJ7XCJmb29cIjokKHg6Zm9vKSwgXCJiYXJcIjokKHg6YmFyKSwgXCJtaW1lVHlwZVwiOiQobWltZVR5cGUpLCBcImhhc2hcIjokKGV0YWcpLCBcImtleVwiOiQoa2V5KSwgXCJmbmFtZVwiOiQoZm5hbWUpfSJ9";
32-
public static final String invalidBucketToken = "dxVQk8gyk3WswArbNhdKIwmwibJ9nFsQhMNUmtIM:mJ6Z0JLK5op1_d0FdU0JrjIHKog=:eyJzY29wZSI6InpvbmVfaW52YWxpZCIsImRlYWRsaW5lIjoxNjc0ODAxMTU1LCAicmV0dXJuQm9keSI6IntcImZvb1wiOiQoeDpmb28pLCBcImJhclwiOiQoeDpiYXIpLCBcIm1pbWVUeXBlXCI6JChtaW1lVHlwZSksIFwiaGFzaFwiOiQoZXRhZyksIFwia2V5XCI6JChrZXkpLCBcImZuYW1lXCI6JChmbmFtZSl9In0=";
28+
public static final String token_cn_east_2 = "dxVQk8gyk3WswArbNhdKIwmwibJ9nFsQhMNUmtIM:a_z-7Ik-iwr9EOErAFmYzevmlfw=:eyJzY29wZSI6ImtvZG8tcGhvbmUtY24tZWFzdC0yIiwiZGVhZGxpbmUiOjE2OTA3NzMyNDcsICJyZXR1cm5Cb2R5Ijoie1wiZm9vXCI6JCh4OmZvbyksIFwiYmFyXCI6JCh4OmJhciksIFwibWltZVR5cGVcIjokKG1pbWVUeXBlKSwgXCJoYXNoXCI6JChldGFnKSwgXCJrZXlcIjokKGtleSksIFwiZm5hbWVcIjokKGZuYW1lKSwgXCJmc2l6ZVwiOiQoZnNpemUpfSJ9";
29+
public static final String invalidBucketToken = "dxVQk8gyk3WswArbNhdKIwmwibJ9nFsQhMNUmtIM:h9Ws_jPrgYhFGgz9LmIai8FB4-c=:eyJzY29wZSI6InpvbmVfaW52YWxpZCIsImRlYWRsaW5lIjoxNjkwNzczMjQ3LCAicmV0dXJuQm9keSI6IntcImZvb1wiOiQoeDpmb28pLCBcImJhclwiOiQoeDpiYXIpLCBcIm1pbWVUeXBlXCI6JChtaW1lVHlwZSksIFwiaGFzaFwiOiQoZXRhZyksIFwia2V5XCI6JChrZXkpLCBcImZuYW1lXCI6JChmbmFtZSksIFwiZnNpemVcIjokKGZzaXplKX0ifQ==";
3330

3431
// -----------
3532
public static final String ak = "bjtWBQXrcxgo7HWwlC_bgHg81j352_GhgBGZPeOW";

library/src/androidTest/java/com/qiniu/android/http/connectCheck/ConnectCheckTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,21 +27,21 @@ public void testCheck() {
2727

2828
@Test
2929
public void testCustomCheckHosts() {
30-
GlobalConfiguration.getInstance().connectCheckURLStrings = new String[]{"https://www.baidu.com", "https://www.google.com"};
31-
int maxCount = 100;
30+
GlobalConfiguration.getInstance().connectCheckURLStrings = new String[]{"https://www.qiniu.com", "https://www.google.com"};
31+
int maxCount = 20;
3232
int successCount = 0;
3333
for (int i = 0; i < maxCount; i++) {
3434
if (ConnectChecker.isConnected(ConnectChecker.check())) {
3535
successCount += 1;
3636
}
3737
}
3838

39-
assertEquals("maxCount:" + maxCount + " successCount:" + successCount, maxCount, successCount);
39+
assertTrue("maxCount:" + maxCount + " successCount:" + successCount, successCount > 12);
4040
}
4141

4242
@Test
4343
public void testNotConnected() {
44-
GlobalConfiguration.getInstance().connectCheckURLStrings = new String[]{"https://www.test1.com", "https://www.test2.com"};
44+
GlobalConfiguration.getInstance().connectCheckURLStrings = new String[]{"https://connect.a.com", "https://connect.a.com"};
4545
int maxCount = 100;
4646
int successCount = 0;
4747
for (int i = 0; i < maxCount; i++) {
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package com.qiniu.android.storage;
2+
3+
4+
import androidx.test.ext.junit.runners.AndroidJUnit4;
5+
6+
import com.qiniu.android.BaseTest;
7+
8+
import org.junit.Test;
9+
import org.junit.runner.RunWith;
10+
11+
12+
/**
13+
* Created by yangsen on 2020/6/3
14+
*/
15+
@RunWith(AndroidJUnit4.class)
16+
public class GlobalConfigurationTest extends BaseTest {
17+
18+
@Test
19+
public void testUpload() {
20+
GlobalConfiguration configuration = GlobalConfiguration.getInstance();
21+
configuration.dohIpv4Servers = null;
22+
configuration.udpDnsIpv4Servers = null;
23+
configuration.connectCheckURLStrings = null;
24+
assertTrue("dohIpv4Servers cfg error", configuration.getDohIpv4Servers()[0].equals("https://8.8.8.8/dns-query"));
25+
assertTrue("udpDnsIpv4Servers cfg error", configuration.getUdpDnsIpv4Servers()[1].equals("8.8.8.8"));
26+
assertTrue("connectCheckURLStrings cfg error", configuration.getConnectCheckUrls()[0].equals("https://www.qiniu.com"));
27+
}
28+
29+
}

library/src/androidTest/java/com/qiniu/android/storage/serverConfig/ServerConfigTest.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public boolean shouldWait() {
2929

3030
@Test
3131
public void testServerConfigModel() {
32-
String serverConfigJsonString = "{\"region\":{\"clear_id\":10,\"clear_cache\":true},\"dns\":{\"enabled\":true,\"clear_id\":10,\"clear_cache\":true,\"doh\":{\"enabled\":true,\"ipv4\":{\"override_default\":true,\"urls\":[\"https://223.5.5.5/dns-query\"]},\"ipv6\":{\"override_default\":true,\"urls\":[\"https://FFAE::EEEE/dns-query\"]}},\"udp\":{\"enabled\":true,\"ipv4\":{\"ips\":[\"223.5.5.5\",\"1.1.1.1\"],\"override_default\":true},\"ipv6\":{\"ips\":[\"FFAE::EEEE\"],\"override_default\":true}}},\"ttl\":86400}";
32+
String serverConfigJsonString = "{\"ttl\": 86400,\"region\": {\"clear_id\": 10,\"clear_cache\": true},\"dns\": {\"enabled\": true,\"clear_id\": 10,\"clear_cache\": true,\"doh\": {\"enabled\": true,\"ipv4\": {\"override_default\": true,\"urls\": [\"https://223.5.5.5/dns-query\"]},\"ipv6\": {\"override_default\": true,\"urls\": [\"https://FFAE::EEEE/dns-query\"]}},\"udp\": {\"enabled\": true,\"ipv4\": {\"ips\": [\"223.5.5.5\", \"1.1.1.1\"],\"override_default\": true},\"ipv6\": {\"ips\": [\"FFAE::EEEE\"],\"override_default\": true}}},\"connection_check\": {\"override_default\": true,\"enabled\": true,\"timeout_ms\": 3000,\"urls\": [\"a.com\", \"b.com\"]}}";
3333
try {
3434
JSONObject jsonObject = new JSONObject(serverConfigJsonString);
3535
ServerConfig serverConfig = new ServerConfig(jsonObject);
@@ -55,6 +55,11 @@ public void testServerConfigModel() {
5555
assertTrue("server config dns doh ipv6 server servers was null", serverConfig.getDnsConfig().getDohDnsConfig().getIpv6Server().getServers() != null);
5656
assertTrue("server config region was null", serverConfig.getRegionConfig() != null);
5757
assertTrue("server config region clear id was null", serverConfig.getRegionConfig().getClearId() > 0);
58+
assertTrue("server config connection check was null", serverConfig.getConnectCheckConfig() != null);
59+
assertTrue("server config connection check enable should true", serverConfig.getConnectCheckConfig().getEnable());
60+
assertTrue("server config connection override should true", serverConfig.getConnectCheckConfig().getOverride());
61+
assertTrue("server config connection check timeout should bigger than 0", serverConfig.getConnectCheckConfig().getTimeoutMs() > 0);
62+
assertTrue("server config connection urls was null", serverConfig.getConnectCheckConfig().getUrls() != null);
5863
} catch (JSONException e) {
5964
fail("server config exception:" + e);
6065
}

library/src/main/java/com/qiniu/android/http/connectCheck/ConnectChecker.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,8 @@ public void complete(UploadSingleRequestMetrics metrics) {
6868
}
6969

7070
private static void checkAllHosts(final CheckCompleteHandler completeHandler) {
71-
String[] allHosts = GlobalConfiguration.getInstance().connectCheckURLStrings;
72-
if (allHosts == null) {
71+
String[] allHosts = GlobalConfiguration.getInstance().getConnectCheckUrls();
72+
if (allHosts == null || allHosts.length == 0) {
7373
completeHandler.complete(null);
7474
return;
7575
}

library/src/main/java/com/qiniu/android/http/request/HttpSingleRequest.java

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ public void complete(ResponseInfo responseInfo, UploadSingleRequestMetrics metri
127127
completeAction(server, responseInfo, responseInfo.response, metrics, completeHandler);
128128
return;
129129
}
130-
130+
131131
if (responseInfo != null) {
132132
responseInfo = responseInfo.checkMaliciousResponse();
133133
}
@@ -184,7 +184,9 @@ public void complete(ResponseInfo responseInfo, UploadSingleRequestMetrics metri
184184
}
185185

186186
private boolean shouldCheckConnect(ResponseInfo responseInfo) {
187-
if (!GlobalConfiguration.getInstance().connectCheckEnable) {
187+
GlobalConfiguration cfg = GlobalConfiguration.getInstance();
188+
String[] checkUrls = cfg.getConnectCheckUrls();
189+
if (!cfg.connectCheckEnable && checkUrls == null || checkUrls.length == 0) {
188190
return false;
189191
}
190192

@@ -227,29 +229,29 @@ private void updateHostNetworkStatus(ResponseInfo responseInfo, IUploadServer se
227229
}
228230

229231
if (byteCount <= 8 * 1024) {
230-
milliSecond = (long)((float)milliSecond * 0.08);
232+
milliSecond = (long) ((float) milliSecond * 0.08);
231233
} else if (byteCount <= 16 * 1024) {
232-
milliSecond = (long)((float)milliSecond * 0.15);
234+
milliSecond = (long) ((float) milliSecond * 0.15);
233235
} else if (byteCount <= 32 * 1024) {
234-
milliSecond = (long)((float)milliSecond * 0.22);
236+
milliSecond = (long) ((float) milliSecond * 0.22);
235237
} else if (byteCount <= 64 * 1024) {
236-
milliSecond = (long)((float)milliSecond * 0.30);
238+
milliSecond = (long) ((float) milliSecond * 0.30);
237239
} else if (byteCount <= 128 * 1024) {
238-
milliSecond = (long)((float)milliSecond * 0.45);
240+
milliSecond = (long) ((float) milliSecond * 0.45);
239241
} else if (byteCount <= 256 * 1024) {
240-
milliSecond = (long)((float)milliSecond * 0.76);
242+
milliSecond = (long) ((float) milliSecond * 0.76);
241243
} else if (byteCount <= 512 * 1024) {
242-
milliSecond = (long)((float)milliSecond * 0.88);
244+
milliSecond = (long) ((float) milliSecond * 0.88);
243245
} else if (byteCount <= 1024 * 1024) {
244-
milliSecond = (long)((float)milliSecond * 0.95);
246+
milliSecond = (long) ((float) milliSecond * 0.95);
245247
}
246248

247249
if (milliSecond <= 0) {
248250
milliSecond = 10;
249251
}
250252

251253
int speed = (int) (byteCount / milliSecond);
252-
Log.d("speed","httpVersion:" + server.getHttpVersion() + " byte:" + byteCount/1024.0 + " milliSecond:" + milliSecond + " speed:" + speed);
254+
Log.d("speed", "httpVersion:" + server.getHttpVersion() + " byte:" + byteCount / 1024.0 + " milliSecond:" + milliSecond + " speed:" + speed);
253255
String type = NetworkStatusManager.getNetworkStatusType(server.getHttpVersion(), server.getHost(), server.getIp());
254256
NetworkStatusManager.getInstance().updateNetworkStatus(type, speed);
255257
}

library/src/main/java/com/qiniu/android/storage/GlobalConfiguration.java

Lines changed: 40 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,13 @@
33
import android.content.Context;
44

55
import com.qiniu.android.http.dns.Dns;
6+
import com.qiniu.android.utils.UrlSafeBase64;
67
import com.qiniu.android.utils.Utils;
78

9+
import org.json.JSONArray;
10+
import org.json.JSONException;
11+
import org.json.JSONObject;
12+
813
public class GlobalConfiguration {
914

1015
/**
@@ -59,7 +64,7 @@ public class GlobalConfiguration {
5964
* 设置 udp ipv4 server,请直接设置 {@link GlobalConfiguration#udpDnsIpv4Servers}
6065
* 此值不可修改
6166
*/
62-
public static String[] DefaultUdpDnsIpv4Servers = new String[]{"223.5.5.5", "114.114.114.114", "1.1.1.1", "208.67.222.222"};
67+
public static String[] DefaultUdpDnsIpv4Servers = parseBase64Array("WyIyMjMuNS41LjUiLCAiMTE0LjExNC4xMTQuMTE0IiwgIjEuMS4xLjEiLCAiOC44LjguOCJd");
6368

6469
/**
6570
* 使用 udp 进行 Dns 预取时的 server ipv4 数组;当对某个 Host 使用 udp 进行 Dns 预取时,会使用 server 数组进行并发预取
@@ -90,7 +95,7 @@ public class GlobalConfiguration {
9095
* 设置 doh ipv4 server,请直接设置 {@link GlobalConfiguration#dohIpv4Servers}
9196
* 此值不可修改
9297
*/
93-
public static String[] DefaultDohIpv4Servers = new String[]{"https://223.6.6.6/dns-query", "https://8.8.8.8/dns-query"};
98+
public static String[] DefaultDohIpv4Servers = parseBase64Array("WyJodHRwczovLzIyMy42LjYuNi9kbnMtcXVlcnkiLCAiaHR0cHM6Ly84LjguOC44L2Rucy1xdWVyeSJd");
9499

95100
/**
96101
* 使用 doh 预取时的 server 数组;当对某个 Host 使用 Doh 预取时,会使用 server 数组进行并发预取
@@ -128,12 +133,20 @@ public class GlobalConfiguration {
128133
*/
129134
public int partialHostFrozenTime = 5 * 60;
130135

136+
137+
/**
138+
* 设置 connect check urls,请直接设置 {@link GlobalConfiguration#connectCheckURLStrings}
139+
* 此值不可修改
140+
*/
141+
public static String[] DefaultConnectCheckURLStrings = parseBase64Array("WyJodHRwczovL3d3dy5xaW5pdS5jb20iLCAiaHR0cHM6Ly93d3cuYmFpZHUuY29tIiwgImh0dHBzOi8vd3d3Lmdvb2dsZS5jb20iXQ==");
142+
143+
131144
/**
132145
* 网络连接状态检测使用的connectCheckURLStrings,网络链接状态检测可能会影响重试机制,启动网络连接状态检测有助于提高上传可用性。
133146
* 当请求的 Response 为网络异常时,并发对 connectCheckURLStrings 中 URLString 进行 HEAD 请求,以此检测当前网络状态的链接状态,其中任意一个 URLString 链接成功则认为当前网络状态链接良好;
134147
* 当 connectCheckURLStrings 为 nil 或者 空数组时则弃用检测功能。
135148
*/
136-
public String[] connectCheckURLStrings = new String[]{"https://www.qiniu.com", "https://www.baidu.com", "https://www.google.com"};
149+
public String[] connectCheckURLStrings = null;
137150

138151
/**
139152
* 网络连接状态检测HEAD请求超时,默认:2s
@@ -192,4 +205,28 @@ public String[] getDohIpv6Servers() {
192205
return DefaultDohIpv6Servers;
193206
}
194207
}
208+
209+
public String[] getConnectCheckUrls() {
210+
if (connectCheckURLStrings != null) {
211+
return connectCheckURLStrings;
212+
} else {
213+
return DefaultConnectCheckURLStrings;
214+
}
215+
}
216+
217+
public static String[] parseBase64Array(String data) {
218+
try {
219+
byte[] jsonBytes = UrlSafeBase64.decode(data);
220+
JSONArray jsonArray = new JSONArray(new String(jsonBytes));
221+
int count = jsonArray.length();
222+
String[] items = new String[count];
223+
for (int i = 0; i < count; i++) {
224+
items[i] = jsonArray.getString(i);
225+
}
226+
return items;
227+
} catch (Exception e) {
228+
e.printStackTrace();
229+
return null;
230+
}
231+
}
195232
}

0 commit comments

Comments
 (0)