Skip to content

Commit c16b02e

Browse files
author
jordanqin
committed
update qcloud sdk to 5.5.9
1 parent 77b2531 commit c16b02e

File tree

35 files changed

+410
-64
lines changed

35 files changed

+410
-64
lines changed

QCloudCosXml/cosext/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ android {
2929
minSdkVersion 19
3030
targetSdkVersion 28
3131
versionCode sdkVersionCode
32-
versionName "5.5.8"
32+
versionName "5.5.9"
3333

3434
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
3535

QCloudCosXml/cosxml-ktx/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ android {
88
defaultConfig {
99
minSdkVersion 15
1010
targetSdkVersion 29
11-
versionCode 50508
12-
versionName "5.5.8"
11+
versionCode 50509
12+
versionName "5.5.9"
1313

1414
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
1515
consumerProguardFiles "consumer-rules.pro"

QCloudCosXml/cosxml/build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ android {
1616
minSdkVersion 15
1717
targetSdkVersion 28
1818

19-
versionCode 50508
20-
versionName "5.5.8"
19+
versionCode 50509
20+
versionName "5.5.9"
2121

2222
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
2323

@@ -117,7 +117,7 @@ if (android.defaultPublishConfig.contains("slim")){
117117
project.extensions.add('artifactProduct', 'normal')
118118
project.extensions.add('artifactDesc', 'the tencent cloud cosxml android sdk')
119119
}
120-
apply from: '../../publish.gradle'
120+
121121

122122

123123
// 发布到内部仓库

QCloudCosXml/cosxml/src/androidTest/java/com/tencent/cos/xml/cdn/CdnDownloadTest.java

Lines changed: 54 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import com.tencent.cos.xml.model.object.HeadObjectRequest;
1919
import com.tencent.cos.xml.transfer.COSXMLDownloadTask;
2020
import com.tencent.cos.xml.transfer.TransferManager;
21+
import com.tencent.cos.xml.transfer.TransferState;
2122
import com.tencent.qcloud.core.logger.QCloudLogger;
2223

2324
import org.junit.After;
@@ -38,6 +39,7 @@
3839
@RunWith(AndroidJUnit4.class)
3940
public class CdnDownloadTest {
4041

42+
private boolean testCdn = true;
4143
@After
4244
public void clearDownloadFiles() {
4345
TestUtils.clearDir(new File(TestUtils.localParentPath()));
@@ -68,8 +70,12 @@ public void testMd5() {
6870

6971
@Test
7072
public void testHeadObject() {
73+
if (!testCdn) {
74+
return;
75+
}
7176

7277
CosXmlSimpleService cosXmlService = ServiceFactory.INSTANCE.newCDNService();
78+
7379
String path = TestConst.PERSIST_BUCKET_SMALL_OBJECT_PATH;
7480
HeadObjectRequest headObjectRequest = new HeadObjectRequest(TestConst.PERSIST_BUCKET, path);
7581

@@ -83,20 +89,37 @@ public void testHeadObject() {
8389
paras.put("sign", String.format("%d-%s-0-%s", timestamp, rand, sign));
8490
headObjectRequest.setQueryParameters(paras);
8591

92+
//重试三次 有些时候会出现AssertionError: null (Service: null; Status Code: 403; Status Message: ; Error Code: null; Request ID: null)服务端错误
8693
try {
8794
cosXmlService.headObject(headObjectRequest);
8895
} catch (Exception e) {
89-
Assert.fail(e.getMessage());
96+
TestUtils.sleep(1000);
97+
try {
98+
cosXmlService.headObject(headObjectRequest);
99+
} catch (Exception e1) {
100+
TestUtils.sleep(1000);
101+
try {
102+
cosXmlService.headObject(headObjectRequest);
103+
} catch (Exception e2) {
104+
Assert.fail(e.getMessage());
105+
}
106+
}
90107
}
91108

92109
Assert.assertTrue(true);
93110
}
94111

95112
@Test public void testGetObject() {
113+
if (!testCdn) {
114+
return;
115+
}
96116

97117
CosXmlSimpleService cosXmlService = ServiceFactory.INSTANCE.newCDNService();
98118

99-
String path = TestConst.PERSIST_BUCKET_SMALL_OBJECT_PATH;
119+
String bucket = TestConst.PERSIST_BUCKET;
120+
String path = TestConst.PERSIST_BUCKET_PIC_PATH;
121+
122+
///String path = TestConst.PERSIST_BUCKET_SMALL_OBJECT_PATH;
100123

101124
GetObjectRequest getObjectRequest = new GetObjectRequest(TestConst.PERSIST_BUCKET,
102125
path, TestUtils.localParentPath());
@@ -114,15 +137,29 @@ public void testHeadObject() {
114137
try {
115138
cosXmlService.getObject(getObjectRequest);
116139
} catch (Exception e) {
117-
e.printStackTrace();
118-
Assert.fail(e.getMessage());
140+
TestUtils.sleep(1000);
141+
try {
142+
cosXmlService.getObject(getObjectRequest);
143+
} catch (Exception e1) {
144+
TestUtils.sleep(1000);
145+
try {
146+
cosXmlService.getObject(getObjectRequest);
147+
} catch (Exception e2) {
148+
Assert.fail(e.getMessage());
149+
}
150+
}
119151
}
120152

121153
Assert.assertTrue(true);
122154
}
123155

156+
private int retry = 3;
124157
@Test public void testTransferManagerDownload() {
125158

159+
if (!testCdn) {
160+
return;
161+
}
162+
126163
String path = TestConst.PERSIST_BUCKET_BIG_OBJECT_PATH;
127164

128165
TransferManager transferManager = ServiceFactory.INSTANCE.newCdnTransferManager();
@@ -164,12 +201,18 @@ public void onProgress(long complete, long target) {
164201
});
165202

166203
testLocker.lock();
167-
TestUtils.assertCOSXMLTaskSuccess(downloadTask);
168-
}
169-
170-
171-
172-
173-
174204

205+
//重试三次 有些时候会出现AssertionError: null (Service: null; Status Code: 403; Status Message: ; Error Code: null; Request ID: null)服务端错误
206+
if(downloadTask.getTaskState() != TransferState.COMPLETED){
207+
if(retry > 0) {
208+
TestUtils.sleep(600);
209+
retry--;
210+
testTransferManagerDownload();
211+
} else {
212+
TestUtils.assertCOSXMLTaskSuccess(downloadTask);
213+
}
214+
} else {
215+
Assert.assertTrue(true);
216+
}
217+
}
175218
}

QCloudCosXml/cosxml/src/androidTest/java/com/tencent/cos/xml/model/RequestTestAdapter.java

Lines changed: 38 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,38 @@
1919
*/
2020
public abstract class RequestTestAdapter<R extends CosXmlRequest, S extends CosXmlResult> {
2121

22+
private int retry = 3;
23+
private void recoveryRetry(){
24+
retry = 3;
25+
}
26+
2227
public void testSyncRequest() {
2328

2429
CosXmlSimpleService cosXmlService = ServiceFactory.INSTANCE.newDefaultService();
2530
try {
2631
S result = exeSync(newRequestInstance(), cosXmlService);
32+
recoveryRetry();
2733
assertResult(result);
2834
} catch (CosXmlClientException clientException) {
29-
assertException(clientException, null);
35+
if(retry > 0) {
36+
TestUtils.sleep(600);
37+
retry--;
38+
testSyncRequest();
39+
} else {
40+
recoveryRetry();
41+
assertException(clientException, null);
42+
}
3043
} catch (CosXmlServiceException serviceException) {
31-
assertException(null, serviceException);
44+
if(retry > 0) {
45+
TestUtils.sleep(600);
46+
retry--;
47+
testSyncRequest();
48+
} else {
49+
recoveryRetry();
50+
assertException(null, serviceException);
51+
}
52+
} catch (Exception e){
53+
e.printStackTrace();
3254
}
3355
}
3456

@@ -55,7 +77,20 @@ public void onFail(CosXmlRequest request, CosXmlClientException clientException,
5577
}
5678
});
5779
locker.lock();
58-
assertCOSResult(cosResult);
80+
81+
if (cosResult.result != null) {
82+
recoveryRetry();
83+
assertResult((S) cosResult.result);
84+
} else {
85+
if(retry > 0) {
86+
TestUtils.sleep(600);
87+
retry--;
88+
testAsyncRequest();
89+
} else {
90+
recoveryRetry();
91+
assertException(cosResult.clientException, cosResult.serviceException);
92+
}
93+
}
5994
}
6095

6196
protected abstract R newRequestInstance();
@@ -64,15 +99,6 @@ public void onFail(CosXmlRequest request, CosXmlClientException clientException,
6499

65100
protected abstract void exeAsync(R request, CosXmlSimpleService cosXmlService, CosXmlResultListener resultListener);
66101

67-
private void assertCOSResult(COSResult cosResult) {
68-
69-
if (cosResult.result != null) {
70-
assertResult((S) cosResult.result);
71-
} else {
72-
assertException(cosResult.clientException, cosResult.serviceException);
73-
}
74-
}
75-
76102
protected void assertResult(S result) {
77103
result.printResult();
78104
TestUtils.parseBadResponseBody(result);

QCloudCosXml/cosxml/src/androidTest/java/com/tencent/cos/xml/model/SimpleOtherObjectTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ public void onProgress(long complete, long target) {
244244
completeMultiUploadRequest.setPartNumberAndETag(1, uploadPartResult1.eTag);
245245
Map<Integer,String> partNumberAndETag = new HashMap<>();
246246
partNumberAndETag.put(2, uploadPartResult2.eTag);
247-
// TODO: 2020/12/30 覆盖率 只要完成分片3 就会失败 错误码:-283,分片过小
247+
// 覆盖率 只要完成分片3 就会失败 错误码:-283,分片过小
248248
// partNumberAndETag.put(3, uploadPartResult3.eTag);
249249
completeMultiUploadRequest.setPartNumberAndETag(partNumberAndETag);
250250
Assert.assertNotNull(completeMultiUploadRequest.getCompleteMultipartUpload());

QCloudCosXml/cosxml/src/androidTest/java/com/tencent/cos/xml/model/object/ObjectTest.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,18 +20,16 @@ public class ObjectTest {
2020
* 简单测试
2121
*/
2222
private RequestTestAdapter[] simpleTestAdapters = new RequestTestAdapter[] {
23-
// TODO: 2020/12/30 覆盖率 单独执行可以 整体跑会失败 method POST must have a request body.
24-
// new PostObjectTestAdapter.PostObjectStreamTestAdapter(),
2523
new PostObjectTestAdapter.PostObjectByteTestAdapter(),
2624
new PostObjectTestAdapter.PostObjectSrcPathTestAdapter(),
25+
new PostObjectTestAdapter.PostObjectStreamTestAdapter(),
2726

2827
new PutObjectTestAdapter.PutObjectSrcPathTestAdapter(),
2928
new PutObjectTestAdapter.PutObjectByteTestAdapter(),
3029
new PutObjectTestAdapter.PutObjectSbTestAdapter(),
3130
new PutObjectTestAdapter.PutObjectInputStreamTestAdapter(),
32-
// // TODO: 2020/12/25 jordanqin 覆盖率 URL类型的会出错
33-
//// new PutObjectTestAdapter.PutObjectUrlTestAdapter(),
34-
//
31+
new PutObjectTestAdapter.PutObjectUrlTestAdapter(),
32+
3533
new GetObjectTestAdapter(),
3634
new PutObjectDeepArchiveTestAdapter(),
3735
new HeadObjectTestAdapter(),
@@ -40,8 +38,6 @@ public class ObjectTest {
4038

4139
// 上传小文件供之后使用
4240
new PutObjectTestAdapter.PutObjectSrcPathTestAdapter(),
43-
44-
// new GetObjectTestAdapter(),
4541
};
4642

4743
/**

QCloudCosXml/cosxml/src/androidTest/java/com/tencent/cos/xml/transfer/CopyTest.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@ public void testCopySmallObject() {
5151
request.setXCOSACL(COSACL.DEFAULT);
5252

5353
request.setCopyIfModifiedSince("Wed, 21 Oct 2009 07:28:00 GMT");
54-
// TODO: 2020/12/30 覆盖率
5554
// request.setCopyIfUnmodifiedSince("Wed, 21 Oct 2052 07:28:00 GMT");
5655
request.setCopyIfMatch(null);
5756
request.setCopyIfNoneMatch("none_match_etag");
@@ -108,6 +107,7 @@ public void onFail(CosXmlRequest request, CosXmlClientException exception, CosXm
108107
testLocker.lock();
109108
}
110109

110+
private int retry = 3;
111111
@Test
112112
public void testCopyBigObject() {
113113
final TestLocker testLocker = new TestLocker();
@@ -132,7 +132,19 @@ public void onFail(CosXmlRequest request, CosXmlClientException exception, CosXm
132132
}
133133
});
134134
testLocker.lock();
135-
TestUtils.assertCOSXMLTaskSuccess(cosxmlCopyTask);
135+
136+
//重试三次 有些时候会出现QCloudClientException: com.tencent.qcloud.core.common.QCloudAuthenticationException: Credentials is null.
137+
if(cosxmlCopyTask.getTaskState() != TransferState.COMPLETED){
138+
if(retry > 0) {
139+
TestUtils.sleep(600);
140+
retry--;
141+
testCopyBigObject();
142+
} else {
143+
TestUtils.assertCOSXMLTaskSuccess(cosxmlCopyTask);
144+
}
145+
} else {
146+
Assert.assertTrue(true);
147+
}
136148
}
137149

138150

0 commit comments

Comments
 (0)