Skip to content

Commit cdbba26

Browse files
authored
Fixzone support create by region id (#505)
1 parent 63e06c2 commit cdbba26

File tree

8 files changed

+94
-23
lines changed

8 files changed

+94
-23
lines changed

.idea/gradle.xml

Lines changed: 2 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/misc.xml

Lines changed: 3 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55

66
buildscript {
77
repositories {
8-
jcenter()
8+
mavenCentral()
99
google()
1010
}
1111
dependencies {
12-
classpath 'com.android.tools.build:gradle:7.1.3'
12+
classpath 'com.android.tools.build:gradle:7.3.1'
1313
// NOTE: Do not place your application dependencies here; they belong
1414
// in the individual module build.gradle files
1515
}

library/build.gradle

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,17 +59,16 @@ android {
5959

6060
dependencies {
6161
implementation 'com.squareup.okhttp3:okhttp:4.9.1'
62-
63-
// implementation 'com.squareup.okhttp3:okhttp:3.12.+'
6462
implementation 'com.qiniu:happy-dns:2.0.1'
63+
6564
// for javax.annotation.Nullable use in custom MultipartBody and Headers implements.
6665
// implementation 'com.google.code.findbugs:jsr305:3.0.2'
6766
implementation 'org.conscrypt:conscrypt-android:2.2.1'
6867
implementation fileTree(include: ['*.jar'], dir: 'libs')
6968

7069
androidTestImplementation 'junit:junit:4.13.2'
71-
androidTestImplementation "androidx.test.ext:junit:1.1.3"
72-
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
70+
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
71+
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
7372

7473
// androidTestImplementation "androidx.test:runner:1.4.0"
7574
// androidTestImplementation "androidx.test:core:1.4.0"

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

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,25 +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:c_5jTva3_WOScZi9vMK9biAV7os=:eyJzY29wZSI6ImtvZG8tcGhvbmUtem9uZTAtc3BhY2UiLCJkZWFkbGluZSI6MTY5NTk4MDM2MiwgInJldHVybkJvZHkiOiJ7XCJmb29cIjokKHg6Zm9vKSwgXCJiYXJcIjokKHg6YmFyKSwgXCJtaW1lVHlwZVwiOiQobWltZVR5cGUpLCBcImhhc2hcIjokKGV0YWcpLCBcImtleVwiOiQoa2V5KSwgXCJmbmFtZVwiOiQoZm5hbWUpLCBcImZzaXplXCI6JChmc2l6ZSl9In0=";
13+
public static final String token_z0 = "dxVQk8gyk3WswArbNhdKIwmwibJ9nFsQhMNUmtIM:IySl002XpGBWsDKkKNK7g_ByUrU=:eyJzY29wZSI6ImtvZG8tcGhvbmUtem9uZTAtc3BhY2UiLCJkZWFkbGluZSI6MTcwMjI2NDUyOSwgInJldHVybkJvZHkiOiJ7XCJmb29cIjokKHg6Zm9vKSwgXCJiYXJcIjokKHg6YmFyKSwgXCJtaW1lVHlwZVwiOiQobWltZVR5cGUpLCBcImhhc2hcIjokKGV0YWcpLCBcImtleVwiOiQoa2V5KSwgXCJmbmFtZVwiOiQoZm5hbWUpLCBcImZzaXplXCI6JChmc2l6ZSl9In0=";
1414
// 华北上传凭证
1515
public static final String bucket_z1 = "kodo-phone-zone1-space";
16-
public static final String token_z1 = "dxVQk8gyk3WswArbNhdKIwmwibJ9nFsQhMNUmtIM:ydDfsf5x2jWb8eX165DuAMfHH4A=:eyJzY29wZSI6ImtvZG8tcGhvbmUtem9uZTEtc3BhY2UiLCJkZWFkbGluZSI6MTY5NTk4MDM2MiwgInJldHVybkJvZHkiOiJ7XCJmb29cIjokKHg6Zm9vKSwgXCJiYXJcIjokKHg6YmFyKSwgXCJtaW1lVHlwZVwiOiQobWltZVR5cGUpLCBcImhhc2hcIjokKGV0YWcpLCBcImtleVwiOiQoa2V5KSwgXCJmbmFtZVwiOiQoZm5hbWUpLCBcImZzaXplXCI6JChmc2l6ZSl9In0=";
16+
public static final String token_z1 = "dxVQk8gyk3WswArbNhdKIwmwibJ9nFsQhMNUmtIM:SRqIrj9rqtDuq7N9ZuZppqnFvGI=:eyJzY29wZSI6ImtvZG8tcGhvbmUtem9uZTEtc3BhY2UiLCJkZWFkbGluZSI6MTcwMjI2NDUyOSwgInJldHVybkJvZHkiOiJ7XCJmb29cIjokKHg6Zm9vKSwgXCJiYXJcIjokKHg6YmFyKSwgXCJtaW1lVHlwZVwiOiQobWltZVR5cGUpLCBcImhhc2hcIjokKGV0YWcpLCBcImtleVwiOiQoa2V5KSwgXCJmbmFtZVwiOiQoZm5hbWUpLCBcImZzaXplXCI6JChmc2l6ZSl9In0=";
1717
// 华南上传凭证
1818
public static final String bucket_z2 = "kodo-phone-zone2-space";
19-
public static final String token_z2 = "dxVQk8gyk3WswArbNhdKIwmwibJ9nFsQhMNUmtIM:R2JsVQBaOh7pREK453aIH5hmOo8=:eyJzY29wZSI6ImtvZG8tcGhvbmUtem9uZTItc3BhY2UiLCJkZWFkbGluZSI6MTY5NTk4MDM2MiwgInJldHVybkJvZHkiOiJ7XCJmb29cIjokKHg6Zm9vKSwgXCJiYXJcIjokKHg6YmFyKSwgXCJtaW1lVHlwZVwiOiQobWltZVR5cGUpLCBcImhhc2hcIjokKGV0YWcpLCBcImtleVwiOiQoa2V5KSwgXCJmbmFtZVwiOiQoZm5hbWUpLCBcImZzaXplXCI6JChmc2l6ZSl9In0=";
19+
public static final String token_z2 = "dxVQk8gyk3WswArbNhdKIwmwibJ9nFsQhMNUmtIM:59MIAaRbhMJUjyTayLSsTMO99H8=:eyJzY29wZSI6ImtvZG8tcGhvbmUtem9uZTItc3BhY2UiLCJkZWFkbGluZSI6MTcwMjI2NDUyOSwgInJldHVybkJvZHkiOiJ7XCJmb29cIjokKHg6Zm9vKSwgXCJiYXJcIjokKHg6YmFyKSwgXCJtaW1lVHlwZVwiOiQobWltZVR5cGUpLCBcImhhc2hcIjokKGV0YWcpLCBcImtleVwiOiQoa2V5KSwgXCJmbmFtZVwiOiQoZm5hbWUpLCBcImZzaXplXCI6JChmc2l6ZSl9In0=";
2020
// 北美上传凭证
2121
public static final String bucket_na0 = "kodo-phone-zone-na0-space";
22-
public static final String token_na0 = "dxVQk8gyk3WswArbNhdKIwmwibJ9nFsQhMNUmtIM:oxJPDRhheBnMHbXxIZwOn0nEH0U=:eyJzY29wZSI6ImtvZG8tcGhvbmUtem9uZS1uYTAtc3BhY2UiLCJkZWFkbGluZSI6MTY5NTk4MDM2MiwgInJldHVybkJvZHkiOiJ7XCJmb29cIjokKHg6Zm9vKSwgXCJiYXJcIjokKHg6YmFyKSwgXCJtaW1lVHlwZVwiOiQobWltZVR5cGUpLCBcImhhc2hcIjokKGV0YWcpLCBcImtleVwiOiQoa2V5KSwgXCJmbmFtZVwiOiQoZm5hbWUpLCBcImZzaXplXCI6JChmc2l6ZSl9In0=";
22+
public static final String token_na0 = "dxVQk8gyk3WswArbNhdKIwmwibJ9nFsQhMNUmtIM:hv6IeMz-bitw_nxnxYEeWJPRFq4=:eyJzY29wZSI6ImtvZG8tcGhvbmUtem9uZS1uYTAtc3BhY2UiLCJkZWFkbGluZSI6MTcwMjI2NDUyOSwgInJldHVybkJvZHkiOiJ7XCJmb29cIjokKHg6Zm9vKSwgXCJiYXJcIjokKHg6YmFyKSwgXCJtaW1lVHlwZVwiOiQobWltZVR5cGUpLCBcImhhc2hcIjokKGV0YWcpLCBcImtleVwiOiQoa2V5KSwgXCJmbmFtZVwiOiQoZm5hbWUpLCBcImZzaXplXCI6JChmc2l6ZSl9In0=";
2323
// 东南亚上传凭证
2424
public static final String bucket_as0 = "kodo-phone-zone-as0-space";
25-
public static final String token_as0 = "dxVQk8gyk3WswArbNhdKIwmwibJ9nFsQhMNUmtIM:tApkgqOaYzs2WWaJKfJIsDhv_CE=:eyJzY29wZSI6ImtvZG8tcGhvbmUtem9uZS1hczAtc3BhY2UiLCJkZWFkbGluZSI6MTY5NTk4MDM2MiwgInJldHVybkJvZHkiOiJ7XCJmb29cIjokKHg6Zm9vKSwgXCJiYXJcIjokKHg6YmFyKSwgXCJtaW1lVHlwZVwiOiQobWltZVR5cGUpLCBcImhhc2hcIjokKGV0YWcpLCBcImtleVwiOiQoa2V5KSwgXCJmbmFtZVwiOiQoZm5hbWUpLCBcImZzaXplXCI6JChmc2l6ZSl9In0=";
25+
public static final String token_as0 = "dxVQk8gyk3WswArbNhdKIwmwibJ9nFsQhMNUmtIM:umlUjNLKvlx7QM9dA7r7xD0Kolc=:eyJzY29wZSI6ImtvZG8tcGhvbmUtem9uZS1hczAtc3BhY2UiLCJkZWFkbGluZSI6MTcwMjI2NDUyOSwgInJldHVybkJvZHkiOiJ7XCJmb29cIjokKHg6Zm9vKSwgXCJiYXJcIjokKHg6YmFyKSwgXCJtaW1lVHlwZVwiOiQobWltZVR5cGUpLCBcImhhc2hcIjokKGV0YWcpLCBcImtleVwiOiQoa2V5KSwgXCJmbmFtZVwiOiQoZm5hbWUpLCBcImZzaXplXCI6JChmc2l6ZSl9In0=";
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:7DoLnAmoeZQZw0NnF7221j_ro-s=:eyJzY29wZSI6ImtvZG8tcGhvbmUtY24tZWFzdC0yIiwiZGVhZGxpbmUiOjE2OTU5ODAzNjIsICJyZXR1cm5Cb2R5Ijoie1wiZm9vXCI6JCh4OmZvbyksIFwiYmFyXCI6JCh4OmJhciksIFwibWltZVR5cGVcIjokKG1pbWVUeXBlKSwgXCJoYXNoXCI6JChldGFnKSwgXCJrZXlcIjokKGtleSksIFwiZm5hbWVcIjokKGZuYW1lKSwgXCJmc2l6ZVwiOiQoZnNpemUpfSJ9";
29-
public static final String invalidBucketToken = "dxVQk8gyk3WswArbNhdKIwmwibJ9nFsQhMNUmtIM:GmHSNf0RubeaWvjc4P7fTHWzBmI=:eyJzY29wZSI6InpvbmVfaW52YWxpZCIsImRlYWRsaW5lIjoxNjk1OTgwMzYyLCAicmV0dXJuQm9keSI6IntcImZvb1wiOiQoeDpmb28pLCBcImJhclwiOiQoeDpiYXIpLCBcIm1pbWVUeXBlXCI6JChtaW1lVHlwZSksIFwiaGFzaFwiOiQoZXRhZyksIFwia2V5XCI6JChrZXkpLCBcImZuYW1lXCI6JChmbmFtZSksIFwiZnNpemVcIjokKGZzaXplKX0ifQ==";
28+
public static final String token_cn_east_2 = "dxVQk8gyk3WswArbNhdKIwmwibJ9nFsQhMNUmtIM:3p87j64XIiAFG7H73leG8zjU120=:eyJzY29wZSI6ImtvZG8tcGhvbmUtY24tZWFzdC0yIiwiZGVhZGxpbmUiOjE3MDIyNjQ1MjksICJyZXR1cm5Cb2R5Ijoie1wiZm9vXCI6JCh4OmZvbyksIFwiYmFyXCI6JCh4OmJhciksIFwibWltZVR5cGVcIjokKG1pbWVUeXBlKSwgXCJoYXNoXCI6JChldGFnKSwgXCJrZXlcIjokKGtleSksIFwiZm5hbWVcIjokKGZuYW1lKSwgXCJmc2l6ZVwiOiQoZnNpemUpfSJ9";
29+
public static final String invalidBucketToken = "dxVQk8gyk3WswArbNhdKIwmwibJ9nFsQhMNUmtIM:Bq_GcfQI_T5hZl78g1SboR4o75k=:eyJzY29wZSI6InpvbmVfaW52YWxpZCIsImRlYWRsaW5lIjoxNzAyMjY0NTI5LCAicmV0dXJuQm9keSI6IntcImZvb1wiOiQoeDpmb28pLCBcImJhclwiOiQoeDpiYXIpLCBcIm1pbWVUeXBlXCI6JChtaW1lVHlwZSksIFwiaGFzaFwiOiQoZXRhZyksIFwia2V5XCI6JChrZXkpLCBcImZuYW1lXCI6JChmbmFtZSksIFwiZnNpemVcIjokKGZzaXplKX0ifQ==";
3030

3131
// -----------
3232
public static final String ak = "bjtWBQXrcxgo7HWwlC_bgHg81j352_GhgBGZPeOW";
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.qiniu.android.common;
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+
@RunWith(AndroidJUnit4.class)
12+
public class FixZoneTest extends BaseTest {
13+
14+
@Test
15+
public void testCreateByRegionId() {
16+
FixedZone zone = FixedZone.createWithRegionId("na0");
17+
ZoneInfo zoneInfo = zone.getZonesInfo(null).zonesInfo.get(0);
18+
19+
assertTrue(zoneInfo.regionId.equals("na0"));
20+
assertTrue(zoneInfo.domains.get(0).equals("upload-na0.qiniup.com"));
21+
assertTrue(zoneInfo.domains.get(1).equals("up-na0.qiniup.com"));
22+
}
23+
}

library/src/main/java/com/qiniu/android/common/FixedZone.java

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,48 +14,82 @@
1414
public final class FixedZone extends Zone {
1515
/**
1616
* 华东机房
17+
* <p>
18+
* 废弃,使用 {@link FixedZone#createWithRegionId} 替换,regionId:z0
1719
*/
20+
@Deprecated
1821
public static final Zone zone0 = new FixedZone(new String[]{"upload.qiniup.com", "up.qiniup.com"},
1922
new String[]{"upload.qbox.me", "up.qbox.me"},
2023
"z0");
2124

2225
/**
2326
* 华东浙江 2 机房
27+
* <p>
28+
* 废弃,使用 {@link FixedZone#createWithRegionId} 替换,regionId:cn-east-2
2429
*/
30+
@Deprecated
2531
public static final Zone zoneCnEast2 = new FixedZone(new String[]{"upload-cn-east-2.qiniup.com", "up-cn-east-2.qiniup.com"},
2632
null,
2733
"cn-east-2");
2834

2935
/**
3036
* 华北机房
37+
* <p>
38+
* 废弃,使用 {@link FixedZone#createWithRegionId} 替换,regionId:z1
3139
*/
40+
@Deprecated
3241
public static final Zone zone1 = new FixedZone(new String[]{"upload-z1.qiniup.com", "up-z1.qiniup.com"},
3342
new String[]{"upload-z1.qbox.me", "up-z1.qbox.me"},
3443
"z1");
3544

3645
/**
3746
* 华南机房
47+
* <p>
48+
* 废弃,使用 {@link FixedZone#createWithRegionId} 替换,regionId:z2
3849
*/
50+
@Deprecated
3951
public static final Zone zone2 = new FixedZone(new String[]{"upload-z2.qiniup.com", "up-z2.qiniup.com"},
4052
new String[]{"upload-z2.qbox.me", "up-z2.qbox.me"},
4153
"z2");
4254

4355
/**
4456
* 北美机房
57+
* <p>
58+
* 废弃,使用 {@link FixedZone#createWithRegionId} 替换,regionId:na0
4559
*/
60+
@Deprecated
4661
public static final Zone zoneNa0 = new FixedZone(new String[]{"upload-na0.qiniup.com", "up-na0.qiniup.com"},
4762
new String[]{"upload-na0.qbox.me", "up-na0.qbox.me"},
4863
"na0");
4964

5065
/**
5166
* 新加坡机房
67+
* <p>
68+
* 废弃,使用 {@link FixedZone#createWithRegionId} 替换,regionId:as0
5269
*/
70+
@Deprecated
5371
public static final Zone zoneAs0 = new FixedZone(new String[]{"upload-as0.qiniup.com", "up-as0.qiniup.com"},
5472
new String[]{"upload-as0.qbox.me", "up-as0.qbox.me"},
5573
"as0");
5674

75+
/**
76+
* FixedZone 构造方法
77+
* regionId 参考链接:https://developer.qiniu.com/kodo/1671/region-endpoint-fq
78+
*
79+
* @param regionId 根据区域 ID 创建 Zone
80+
* @return Zone 实例
81+
*/
82+
public static FixedZone createWithRegionId(String regionId) {
83+
String[] upDomains = new String[]{
84+
"upload-" + regionId + ".qiniup.com",
85+
"up-" + regionId + ".qiniup.com"
86+
};
87+
return new FixedZone(upDomains, new String[]{}, regionId);
88+
}
89+
5790
private ZonesInfo zonesInfo;
5891

92+
@Deprecated
5993
public static FixedZone localsZoneInfo() {
6094
FixedZone[] localsZone = new FixedZone[]{
6195
(FixedZone) zone0, (FixedZone) zoneCnEast2,

mvn_push.gradle

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -64,12 +64,12 @@ publishing {
6464
artifactId = POM_ARTIFACT_ID
6565
version = VERSION_NAME
6666

67-
afterEvaluate {
68-
from components.release
67+
artifacts {
68+
artifact(androidSourcesJar)
69+
artifact(androidJavadocsJar)
70+
artifact("$buildDir/outputs/aar/${project.name}-release.aar")
6971
}
7072

71-
artifact(androidSourcesJar)
72-
artifact(androidJavadocsJar)
7373

7474
pom {
7575
name = POM_NAME
@@ -97,6 +97,20 @@ publishing {
9797
developerConnection=POM_SCM_DEV_CONNECTION
9898
url=POM_SCM_URL
9999
}
100+
101+
withXml {
102+
def dependencies = asNode().appendNode("dependencies")
103+
104+
configurations
105+
.getByName("releaseCompileClasspath")
106+
.resolvedConfiguration
107+
.firstLevelModuleDependencies.forEach {
108+
def dependency = dependencies.appendNode("dependency")
109+
dependency.appendNode("groupId", it.moduleGroup)
110+
dependency.appendNode("artifactId", it.moduleName)
111+
dependency.appendNode("version", it.moduleVersion)
112+
}
113+
}
100114
}
101115
}
102116
}
@@ -117,5 +131,5 @@ publishing {
117131

118132
signing {
119133
required { isReleaseBuild()}
120-
sign publishing.publications.mavenJava
134+
sign publishing.publications
121135
}

0 commit comments

Comments
 (0)