Skip to content

Commit 74f36df

Browse files
committed
update qcloud sdk to 5.6.5
1 parent d92ad10 commit 74f36df

File tree

11 files changed

+111
-38
lines changed

11 files changed

+111
-38
lines changed

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 50604
12-
versionName "5.6.4"
11+
versionCode 50605
12+
versionName "5.6.5"
1313

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

QCloudCosXml/cosxml/build.gradle

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

20-
versionCode 50604
21-
versionName "5.6.4"
20+
versionCode 50605
21+
versionName "5.6.5"
2222

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

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ public CosXmlSimpleService newDefaultService() {
2323
CosXmlServiceConfig cosXmlServiceConfig = new CosXmlServiceConfig.Builder()
2424
.isHttps(true)
2525
.setDebuggable(true)
26+
.setConnectionTimeout(4000)
27+
.setSocketTimeout(4000)
2628
.setRegion(TestConst.PERSIST_BUCKET_REGION)
2729
.builder();
2830

QCloudCosXml/cosxml/src/androidTest/java/com/tencent/cos/xml/core/TestConst.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public class TestConst {
3131
public static final String PERSIST_BUCKET_REPLICATION_REGION = BuildConfig.PERSIST_BUCKET_REPLICATION_REGION;
3232

3333
public static final long PERSIST_BUCKET_SMALL_OBJECT_SIZE = 1024;
34-
public static final long PERSIST_BUCKET_BIG_OBJECT_SIZE = 100 * 1024 * 1024;
34+
public static final long PERSIST_BUCKET_BIG_OBJECT_SIZE = 10 * 1024 * 1024;
3535
public static final String PERSIST_BUCKET_SMALL_OBJECT_PATH = "/do_not_remove/small_object";
3636
public static final String PERSIST_BUCKET_BIG_OBJECT_PATH = "/do_not_remove/big_object";
3737

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import androidx.test.ext.junit.runners.AndroidJUnit4;
44

5+
import com.tencent.cos.xml.core.TestUtils;
56
import com.tencent.cos.xml.model.RequestTestAdapter;
67

78
import org.junit.Test;

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -155,10 +155,10 @@ public void testCancelTask(){
155155
CopyObjectRequest.CopySourceStruct copySourceStruct = new CopyObjectRequest.CopySourceStruct(
156156
TestConst.PERSIST_BUCKET, TestConst.PERSIST_BUCKET_REGION, TestConst.PERSIST_BUCKET_BIG_OBJECT_PATH);
157157
COSXMLCopyTask cosxmlCopyTask = transferManager.copy(TestConst.PERSIST_BUCKET, cosPath, copySourceStruct);
158-
TestUtils.sleep(1000);
158+
TestUtils.sleep(2000);
159159
cosxmlCopyTask.cancel();
160160
TestUtils.sleep(200);
161-
Assert.assertEquals(cosxmlCopyTask.getTaskState(), TransferState.CANCELED);
161+
Assert.assertTrue(cosxmlCopyTask.getTaskState() == TransferState.CANCELED);
162162
}
163163

164164
@Test
@@ -168,10 +168,10 @@ public void testPauseTask() {
168168
CopyObjectRequest.CopySourceStruct copySourceStruct = new CopyObjectRequest.CopySourceStruct(
169169
TestConst.PERSIST_BUCKET, TestConst.PERSIST_BUCKET_REGION, TestConst.PERSIST_BUCKET_BIG_OBJECT_PATH);
170170
COSXMLCopyTask cosxmlCopyTask = transferManager.copy(TestConst.PERSIST_BUCKET, cosPath, copySourceStruct);
171-
TestUtils.sleep(1000);
171+
TestUtils.sleep(2000);
172172
cosxmlCopyTask.pause();
173173
TestUtils.sleep(200);
174-
// Assert.assertTrue(cosxmlCopyTask.getTaskState() == TransferState.PAUSED);
174+
Assert.assertTrue(cosxmlCopyTask.getTaskState() == TransferState.PAUSED);
175175
}
176176

177177
@Test

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,15 @@
3737
import com.tencent.cos.xml.model.object.GetObjectRequest;
3838
import com.tencent.qcloud.core.http.HttpTaskMetrics;
3939
import com.tencent.qcloud.core.logger.QCloudLogger;
40+
import com.tencent.qcloud.core.util.QCloudUtils;
4041

4142
import org.junit.After;
4243
import org.junit.Assert;
4344
import org.junit.Test;
4445
import org.junit.runner.RunWith;
4546

4647
import java.io.File;
48+
import java.net.InetAddress;
4749
import java.net.InetSocketAddress;
4850
import java.util.concurrent.atomic.AtomicBoolean;
4951
import java.util.concurrent.atomic.AtomicInteger;
@@ -70,9 +72,9 @@ public class DownloadTest {
7072
downloadTask.setOnGetHttpTaskMetrics(new COSXMLTask.OnGetHttpTaskMetrics() {
7173
@Override
7274
public void onGetHttpMetrics(String requestName, HttpTaskMetrics httpTaskMetrics) {
73-
InetSocketAddress socketAddress = httpTaskMetrics.getConnectAddress();
75+
InetAddress socketAddress = httpTaskMetrics.getConnectAddress();
7476
if (socketAddress != null) {
75-
QCloudLogger.i(TestConst.UT_TAG, "connect ip is " + socketAddress.getAddress().getHostAddress());
77+
QCloudLogger.i(TestConst.UT_TAG, "connect ip is " + socketAddress.getHostAddress());
7678
}
7779
}
7880
});

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

Lines changed: 62 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@
2323
package com.tencent.cos.xml.transfer;
2424

2525
import android.net.Uri;
26-
import android.os.Environment;
27-
import android.text.TextUtils;
2826
import android.util.Log;
2927

3028
import androidx.test.ext.junit.runners.AndroidJUnit4;
@@ -55,8 +53,6 @@
5553
import java.util.concurrent.atomic.AtomicBoolean;
5654
import java.util.concurrent.atomic.AtomicInteger;
5755

58-
import static android.os.Environment.DIRECTORY_DOWNLOADS;
59-
6056

6157
@RunWith(AndroidJUnit4.class)
6258
public class UploadTest {
@@ -279,7 +275,7 @@ public void onFail(CosXmlRequest request, CosXmlClientException clientException,
279275
@Test public void testUploadSmallFileByPath() {
280276

281277
TransferManager transferManager = ServiceFactory.INSTANCE.newDefaultTransferManager();
282-
PutObjectRequest putObjectRequest = new PutObjectRequest(TestConst.PERSIST_BUCKET + "xxx",
278+
PutObjectRequest putObjectRequest = new PutObjectRequest(TestConst.PERSIST_BUCKET,
283279
TestConst.PERSIST_BUCKET_SMALL_OBJECT_PATH, TestUtils.bigFilePath());
284280

285281
File file = new File(putObjectRequest.getSrcPath());
@@ -322,13 +318,65 @@ public void onFail(CosXmlRequest request, CosXmlClientException clientException,
322318
testLocker.lock();
323319
}
324320

321+
@Test public void testUploadFileByPath() {
322+
323+
TransferManager transferManager = ServiceFactory.INSTANCE.newDefaultTransferManager();
324+
PutObjectRequest putObjectRequest = new PutObjectRequest(TestConst.PERSIST_BUCKET,
325+
TestConst.PERSIST_BUCKET_SMALL_OBJECT_PATH, TestUtils.smallFilePath());
326+
327+
File file = new File(putObjectRequest.getSrcPath());
328+
QCloudLogger.i("QCloudTest", "upload file size is " + file.length());
329+
final COSXMLUploadTask uploadTask = transferManager.upload(putObjectRequest, null);
330+
uploadTask.setCosXmlService(ServiceFactory.INSTANCE.newDefaultService());
331+
uploadTask.setOnGetHttpTaskMetrics(new COSXMLTask.OnGetHttpTaskMetrics() {
332+
@Override
333+
public void onGetHttpMetrics(String requestName, HttpTaskMetrics httpTaskMetrics) {
334+
335+
//logMsTime("calculateMD5STookTime", httpTaskMetrics.calculateMD5STookTime());
336+
//logMsTime("signRequestTookTime", httpTaskMetrics.signRequestTookTime());
337+
logMsTime("dnsLookupTookTime", httpTaskMetrics.dnsLookupTookTime());
338+
logMsTime("connectTookTime", httpTaskMetrics.connectTookTime());
339+
//logMsTime("secureConnectTookTime", httpTaskMetrics.secureConnectTookTime());
340+
//logMsTime("writeRequestHeaderTookTime", httpTaskMetrics.writeRequestHeaderTookTime());
341+
//logMsTime("writeRequestBodyTookTime", httpTaskMetrics.writeRequestBodyTookTime());
342+
//logMsTime("readResponseHeaderTookTime", httpTaskMetrics.readResponseHeaderTookTime());
343+
//logMsTime("readResponseBodyTookTime", httpTaskMetrics.readResponseBodyTookTime());
344+
logMsTime("fullTaskTookTime", httpTaskMetrics.fullTaskTookTime());
345+
}
346+
});
347+
final TestLocker testLocker = new TestLocker();
348+
uploadTask.setCosXmlResultListener(new CosXmlResultListener() {
349+
@Override
350+
public void onSuccess(CosXmlRequest request, CosXmlResult result) {
351+
result.printResult();
352+
TestUtils.parseBadResponseBody(result);
353+
testLocker.release();
354+
355+
}
356+
357+
@Override
358+
public void onFail(CosXmlRequest request, CosXmlClientException clientException, CosXmlServiceException serviceException) {
359+
TestUtils.printError(TestUtils.getCosExceptionMessage(clientException, serviceException));
360+
testLocker.release();
361+
}
362+
});
363+
364+
testLocker.lock();
365+
}
366+
325367
@Test public void testUploadSmallFileByUri() {
326368

327369
TransferManager transferManager = ServiceFactory.INSTANCE.newDefaultTransferManager();
328370
PutObjectRequest putObjectRequest = new PutObjectRequest(TestConst.PERSIST_BUCKET,
329371
TestConst.PERSIST_BUCKET_SMALL_OBJECT_PATH, Uri.fromFile(new File(TestUtils.smallFilePath())));
330372

331373
COSXMLUploadTask uploadTask = transferManager.upload(putObjectRequest, null);
374+
uploadTask.setOnGetHttpTaskMetrics(new COSXMLTask.OnGetHttpTaskMetrics() {
375+
@Override
376+
public void onGetHttpMetrics(String requestName, HttpTaskMetrics httpTaskMetrics) {
377+
QCloudLogger.i(TestConst.UT_TAG, "connect ip is " + httpTaskMetrics.getConnectAddress().getHostAddress());
378+
}
379+
});
332380
final TestLocker testLocker = new TestLocker();
333381
uploadTask.setCosXmlResultListener(new CosXmlResultListener() {
334382
@Override
@@ -360,6 +408,12 @@ public void onStateChanged(TransferState state) {
360408
QCloudLogger.i("QCloudTest", "state is " + state);
361409
}
362410
});
411+
uploadTask.setOnGetHttpTaskMetrics(new COSXMLTask.OnGetHttpTaskMetrics() {
412+
@Override
413+
public void onGetHttpMetrics(String requestName, HttpTaskMetrics httpTaskMetrics) {
414+
QCloudLogger.i(TestConst.UT_TAG, "connect ip is " + httpTaskMetrics.getConnectAddress().getHostAddress());
415+
}
416+
});
363417
uploadTask.setCosXmlResultListener(new CosXmlResultListener() {
364418
@Override
365419
public void onSuccess(CosXmlRequest request, CosXmlResult result) {
@@ -548,17 +602,17 @@ public void onFail(CosXmlRequest request, CosXmlClientException clientException,
548602
});
549603

550604
// 上传 5s 后暂停
551-
Thread.sleep(1000);
605+
Thread.sleep(10000);
552606
if (cosxmlUploadTask.getTaskState() == TransferState.COMPLETED) {
553607
Assert.assertTrue(true);
554608
return;
555609
} else if (cosxmlUploadTask.getTaskState() == TransferState.IN_PROGRESS) {
556610

557611
cosxmlUploadTask.pauseSafely();
558-
Thread.sleep(200);
612+
Thread.sleep(2000);
559613
cosxmlUploadTask.resume();
560614
} else {
561-
Assert.fail("task state is not complete or in progress, real state is " + cosxmlUploadTask.getTaskState());
615+
Assert.fail();
562616
return;
563617
}
564618

QCloudCosXml/cosxml/src/main/java/com/tencent/cos/xml/BeaconService.java

Lines changed: 27 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,6 @@
6969

7070
import javax.net.ssl.SSLHandshakeException;
7171

72-
import okhttp3.ConnectionPool;
73-
7472
/**
7573
* 灯塔服务
7674
*/
@@ -450,23 +448,31 @@ private CosXmlServiceException reportServiceException(String eventCode, CosXmlRe
450448
private Map<String, String> parseDnsParams(CosXmlRequest request) {
451449
Map<String, String> params = new HashMap<>();
452450
String host = parseHost(request);
453-
HttpTaskMetrics taskMetrics = request.getMetrics();
451+
454452
if (TextUtils.isEmpty(host)) {
455453
return params;
456454
}
457-
if (taskMetrics != null && taskMetrics.getConnectAddress() != null
458-
&& taskMetrics.getConnectAddress().getAddress() != null) {
459-
params.put("ips", taskMetrics.getConnectAddress()
460-
.getAddress().getHostAddress());
461-
} else {
462-
InetSocketAddress connectionAddress = ConnectionRepository.getInstance().getConnectAddress(host);
463-
if (connectionAddress != null && connectionAddress.getAddress() != null) {
464-
params.put("ips", connectionAddress.getAddress().getHostAddress());
465-
}
455+
456+
HttpTaskMetrics taskMetrics = request.getMetrics();
457+
List<InetAddress> dns = null;
458+
try {
459+
dns = ConnectionRepository.getInstance().getDnsRecord(host);
460+
} catch (UnknownHostException e) {
461+
e.printStackTrace();
466462
}
463+
params.put("ips", flatDns(taskMetrics.getConnectAddress(), dns));
467464
return params;
468465
}
469466

467+
private String flatDns(@Nullable InetAddress connect, @Nullable List<InetAddress> dns) {
468+
469+
if (connect != null && connect.getHostAddress() != null) {
470+
return String.format("{%s}", connect.getHostAddress());
471+
}
472+
return flatInetAddressList(dns);
473+
}
474+
475+
470476
private @Nullable String parseHost(CosXmlRequest request) {
471477
HttpTask httpTask = request.getHttpTask();
472478
String host = null;
@@ -692,13 +698,19 @@ private Map<String, String> getBaseServiceParams(CosXmlRequest cosXmlRequest, lo
692698

693699
private String flatInetAddressList(@Nullable List<InetAddress> ips) {
694700
if (ips == null) {
695-
return "";
701+
return "{}";
696702
}
697703

698-
StringBuilder ipString = new StringBuilder();
704+
StringBuilder ipString = new StringBuilder("{");
705+
int count = 0;
699706
for (InetAddress ip : ips) {
700707
ipString.append(ip.getHostAddress());
701-
ipString.append(",");
708+
boolean isLast = ++count == ips.size();
709+
if (isLast) {
710+
ipString.append("}");
711+
} else {
712+
ipString.append(",");
713+
}
702714
}
703715
return ipString.toString();
704716
}

QCloudCosXml/cosxml/src/main/java/com/tencent/cos/xml/transfer/COSXMLDownloadTask.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -163,10 +163,12 @@ public void onFail(CosXmlRequest request, CosXmlClientException clientException,
163163
}
164164

165165
Exception causeException = null;
166-
if (clientException != null) {
166+
if (clientException != null && taskState != TransferState.PAUSED && taskState != TransferState.CANCELED) {
167167
BeaconService.getInstance().reportDownloadTaskClientException(request, clientException);
168168
causeException = clientException;
169-
} else if (serviceException != null) {
169+
}
170+
171+
if (serviceException != null && taskState != TransferState.PAUSED && taskState != TransferState.CANCELED) {
170172
// BeaconService.getInstance().reportDownload(region, BeaconService.EVENT_PARAMS_NODE_GET, serviceException);
171173
BeaconService.getInstance().reportDownloadTaskServiceException(request, serviceException);
172174
causeException = serviceException;
@@ -386,7 +388,7 @@ protected void internalFailed() {
386388
protected void internalPause() {
387389

388390
if (getObjectRequest != null) {
389-
BeaconService.getInstance().reportUploadTaskSuccess(getObjectRequest);
391+
BeaconService.getInstance().reportDownloadTaskSuccess(getObjectRequest);
390392
}
391393
cancelAllRequest();
392394
}

0 commit comments

Comments
 (0)