Skip to content

Commit 1915b7c

Browse files
author
jordanqin
committed
update qcloud sdk to 5.9.26
1 parent 02ef490 commit 1915b7c

File tree

7 files changed

+125
-9
lines changed

7 files changed

+125
-9
lines changed

QCloudCosXml/cos-android-base/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ android {
66
minSdkVersion 15
77
targetSdkVersion 28
88

9-
versionCode 50923
10-
versionName '5.9.23'
9+
versionCode 50924
10+
versionName '5.9.24'
1111

1212
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
1313

QCloudCosXml/cos-android/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,8 @@ android {
8989
}
9090

9191
// 切换发 normal 或者 slim 包,需要同步修改 pom.artifactId 信息
92-
defaultPublishConfig "normalRelease"
93-
// defaultPublishConfig "slimRelease"
92+
// defaultPublishConfig "normalRelease"
93+
defaultPublishConfig "slimRelease"
9494

9595
compileOptions {
9696
sourceCompatibility = JavaVersion.VERSION_1_8

QCloudCosXml/cos-android/src/androidTest/java/com/tencent/cos/xml/common/CosXmlConfigTest.java

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,12 @@
2727
import androidx.test.ext.junit.runners.AndroidJUnit4;
2828

2929
import com.tencent.cos.xml.CosXmlServiceConfig;
30+
import com.tencent.cos.xml.CosXmlSimpleService;
31+
import com.tencent.cos.xml.core.ServiceFactory;
32+
import com.tencent.cos.xml.core.TestConst;
33+
import com.tencent.cos.xml.exception.CosXmlClientException;
34+
import com.tencent.cos.xml.exception.CosXmlServiceException;
35+
import com.tencent.cos.xml.model.object.HeadObjectRequest;
3036
import com.tencent.qcloud.core.http.QCloudHttpRetryHandler;
3137
import com.tencent.qcloud.core.task.RetryStrategy;
3238

@@ -87,6 +93,59 @@ public boolean shouldRetry(Request request, Response response, Exception excepti
8793
Assert.assertEquals("", headerHost);
8894
}
8995

96+
@Test
97+
public void multipleConfigTest() {
98+
HeadObjectRequest headObjectRequest1 = new HeadObjectRequest(TestConst.PERSIST_BUCKET, TestConst.PERSIST_BUCKET_SMALL_OBJECT_PATH);
99+
CosXmlServiceConfig cosXmlServiceConfig1 = new CosXmlServiceConfig.Builder()
100+
.isHttps(true)
101+
.setDebuggable(true)
102+
.addHeader("testkey1", "testvalue1")
103+
.setConnectionTimeout(4000)
104+
.setSocketTimeout(4000)
105+
.setRegion(TestConst.PERSIST_BUCKET_REGION)
106+
.builder();
107+
CosXmlSimpleService service1 = ServiceFactory.INSTANCE.newService(cosXmlServiceConfig1);
108+
try {
109+
service1.addCustomerDNS("mobile-ut-1253960454.cos.ap-guangzhou.myqcloud.com", new String[]{"183.47.104.187"});
110+
} catch (CosXmlClientException e) {
111+
throw new RuntimeException(e);
112+
}
113+
try {
114+
service1.headObject(headObjectRequest1);
115+
} catch (CosXmlClientException e) {
116+
} catch (CosXmlServiceException e) {
117+
}
118+
119+
HeadObjectRequest headObjectRequest2 = new HeadObjectRequest(TestConst.ASR_BUCKET, TestConst.ASR_OBJECT_LONG);
120+
CosXmlServiceConfig cosXmlServiceConfig2 = new CosXmlServiceConfig.Builder()
121+
.isHttps(true)
122+
.setDebuggable(true)
123+
.addHeader("testkey2", "testvalue2")
124+
.setConnectionTimeout(4000)
125+
.setSocketTimeout(4000)
126+
.setRegion(TestConst.PERSIST_BUCKET_REGION)
127+
.builder();
128+
CosXmlSimpleService service2 = ServiceFactory.INSTANCE.newService(cosXmlServiceConfig2);
129+
try {
130+
service2.addCustomerDNS("ci-auditing-sample-1253960454.cos.ap-guangzhou.myqcloud.com", new String[]{"127.0.0.1"});
131+
service2.addCustomerDNS("ci-auditing-sample-1253960454.cos.ap-guangzhou.tencentcos.cn", new String[]{"127.0.0.1"});
132+
service1.addCustomerDNS("mobile-ut-1253960454.cos.ap-guangzhou.myqcloud.com", new String[]{"127.0.0.1"});
133+
} catch (CosXmlClientException e) {
134+
throw new RuntimeException(e);
135+
}
136+
try {
137+
service2.headObject(headObjectRequest2);
138+
} catch (CosXmlClientException e) {
139+
} catch (CosXmlServiceException e) {
140+
}
141+
142+
try {
143+
service1.headObject(headObjectRequest1);
144+
} catch (CosXmlClientException e) {
145+
} catch (CosXmlServiceException e) {
146+
}
147+
}
148+
90149
@Test
91150
public void testIpPortHost() {
92151

QCloudCosXml/cos-android/src/androidTest/java/com/tencent/cos/xml/core/ServiceFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -430,7 +430,7 @@ private CosXmlSimpleService newServiceBySessionCredentials(CosXmlServiceConfig c
430430
new ShortTimeCredentialProvider(TestConst.SECRET_ID, TestConst.SECRET_KEY,60000) );
431431
}
432432

433-
private CosXmlSimpleService newService(CosXmlServiceConfig cosXmlServiceConfig) {
433+
public CosXmlSimpleService newService(CosXmlServiceConfig cosXmlServiceConfig) {
434434
return new CosXmlSimpleService(getContext(), cosXmlServiceConfig,
435435
new ShortTimeCredentialProvider(TestConst.SECRET_ID, TestConst.SECRET_KEY,60000) );
436436

QCloudCosXml/cos-android/src/main/java/com/tencent/cos/xml/model/object/ListPartsRequest.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ public Map<String, String> getQueryString() {
6868
queryParameters.put("max-parts",maxParts);
6969
}
7070
if(partNumberMarker != null){
71-
queryParameters.put("part-number-marker",maxParts);
71+
queryParameters.put("part-number-marker",partNumberMarker);
7272
}
7373
if(encodingType != null){
7474
queryParameters.put("Encoding-type",encodingType);
@@ -133,6 +133,14 @@ public void setPartNumberMarker(int partNumberMarker) {
133133
this.partNumberMarker = String.valueOf(partNumberMarker);
134134
}
135135

136+
/**
137+
* 设置列出分片的起点。
138+
* @param partNumberMarker 列出分片的起点,可从ListPartsResult中读取。
139+
*/
140+
public void setPartNumberMarker(String partNumberMarker) {
141+
this.partNumberMarker = partNumberMarker;
142+
}
143+
136144
/**
137145
* 获取设置的NumberMarker
138146
* @return 用户设置的NumberMarker

QCloudCosXml/cos-android/src/main/java/com/tencent/cos/xml/transfer/COSXMLUploadTask.java

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@
7070
import java.io.IOException;
7171
import java.io.InputStream;
7272
import java.net.URL;
73+
import java.util.ArrayList;
7374
import java.util.Collections;
7475
import java.util.Comparator;
7576
import java.util.HashMap;
@@ -83,6 +84,7 @@
8384
import java.util.concurrent.atomic.AtomicBoolean;
8485
import java.util.concurrent.atomic.AtomicInteger;
8586
import java.util.concurrent.atomic.AtomicLong;
87+
import java.util.concurrent.atomic.AtomicReference;
8688

8789
/**
8890
* 上传传输任务
@@ -466,6 +468,53 @@ public void onFail(CosXmlRequest request, CosXmlClientException exception, CosXm
466468
});
467469
}
468470

471+
public void listAllPartsAsync(CosXmlSimpleService cosXmlService, CosXmlResultListener cosXmlResultListener) {
472+
// 初始化分页标记
473+
AtomicReference<String> nextPartNumberMarker = new AtomicReference<>(null);
474+
ArrayList<ListParts.Part> allParts = new ArrayList<>();
475+
// 创建一个处理结果的方法
476+
Runnable handleResult = new Runnable() {
477+
@Override
478+
public void run() {
479+
// 设置分页标记
480+
if (nextPartNumberMarker.get() != null && !nextPartNumberMarker.get().isEmpty()) {
481+
listPartsRequest.setPartNumberMarker(nextPartNumberMarker.get());
482+
}
483+
484+
// 发送请求
485+
cosXmlService.listPartsAsync(listPartsRequest, new CosXmlResultListener() {
486+
@Override
487+
public void onSuccess(CosXmlRequest request, CosXmlResult result) {
488+
ListPartsResult listPartsResult = (ListPartsResult) result;
489+
if(listPartsResult.listParts.parts != null && listPartsResult.listParts.parts.size() > 0){
490+
allParts.addAll(listPartsResult.listParts.parts);
491+
}
492+
493+
// 更新分页标记
494+
nextPartNumberMarker.set(listPartsResult.listParts.nextPartNumberMarker);
495+
// 如果还有更多的分块,再次调用 handleResult
496+
if (nextPartNumberMarker.get() != null && !nextPartNumberMarker.get().isEmpty()) {
497+
run();
498+
} else {
499+
// 所有的操作都完成了
500+
listPartsResult.listParts.parts = allParts;
501+
cosXmlResultListener.onSuccess(request, listPartsResult);
502+
}
503+
}
504+
505+
@Override
506+
public void onFail(CosXmlRequest request, CosXmlClientException clientException, CosXmlServiceException serviceException) {
507+
// 处理错误
508+
cosXmlResultListener.onFail(request, clientException, serviceException);
509+
}
510+
});
511+
}
512+
};
513+
514+
// 开始处理
515+
handleResult.run();
516+
}
517+
469518
private void listMultiUpload(CosXmlSimpleService cosXmlService){
470519
listPartsRequest = new ListPartsRequest(bucket, cosPath, uploadId);
471520
listPartsRequest.setRegion(region);
@@ -486,7 +535,7 @@ public void onStateChanged(String taskId, int state) {
486535
}
487536
});
488537

489-
cosXmlService.listPartsAsync(listPartsRequest, new CosXmlResultListener() {
538+
listAllPartsAsync(cosXmlService, new CosXmlResultListener() {
490539
@Override
491540
public void onSuccess(CosXmlRequest request, final CosXmlResult result) {
492541
if(request != listPartsRequest){

QCloudCosXml/version.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,6 @@
2222
*/
2323

2424
ext {
25-
cosSdkVersionCode = 50925
26-
cosSdkVersionName = '5.9.25'
25+
cosSdkVersionCode = 50926
26+
cosSdkVersionName = '5.9.26'
2727
}

0 commit comments

Comments
 (0)