From 77299321cb9a000b4bdbbebf9a31416979623c3e Mon Sep 17 00:00:00 2001 From: yangsen Date: Tue, 25 Jul 2023 09:45:33 +0800 Subject: [PATCH] Uc query hosts order (#586) --- src/main/java/com/qiniu/storage/Api.java | 6 +----- src/main/java/com/qiniu/storage/ApiInterceptorAuth.java | 2 +- src/main/java/com/qiniu/storage/ApiQueryRegion.java | 2 +- src/main/java/com/qiniu/storage/AutoRegion.java | 2 +- src/main/java/com/qiniu/storage/BucketManager.java | 2 +- src/main/java/com/qiniu/storage/ConfigHelper.java | 1 - src/main/java/com/qiniu/storage/Configuration.java | 4 ++-- src/main/java/com/qiniu/storage/FormUploader.java | 2 +- src/main/java/com/qiniu/storage/HostProvider.java | 2 +- .../java/com/qiniu/storage/ResumeUploadPerformer.java | 2 +- src/main/java/com/qiniu/util/DefaultHeader.java | 4 +++- src/main/java/com/qiniu/util/Timestamp.java | 4 ++++ src/test/java/com/qiniu/storage/ApiQueryRegionTest.java | 5 ++--- src/test/java/test/com/qiniu/storage/ApiUploadV1Test.java | 4 ++-- src/test/java/test/com/qiniu/storage/ApiUploadV2Test.java | 7 ++++--- src/test/java/test/com/qiniu/storage/BucketTest.java | 8 ++++++-- 16 files changed, 31 insertions(+), 26 deletions(-) diff --git a/src/main/java/com/qiniu/storage/Api.java b/src/main/java/com/qiniu/storage/Api.java index eb99dddd..b2160839 100644 --- a/src/main/java/com/qiniu/storage/Api.java +++ b/src/main/java/com/qiniu/storage/Api.java @@ -10,7 +10,6 @@ import com.qiniu.util.StringUtils; import okhttp3.MediaType; import okhttp3.MultipartBody; -import okhttp3.Request; import okhttp3.RequestBody; import okio.BufferedSink; @@ -117,10 +116,7 @@ protected com.qiniu.http.Response innerRequest(Request request) throws QiniuExce MethodType method = request.getMethod(); String url = request.getUrl().toString(); StringMap header = request.getHeader(); - RequestBody body = null; - if (method.hasContent()) { - body = request.getRequestBody(); - } + RequestBody body = method.hasContent() ? request.getRequestBody() : null; okhttp3.Request.Builder requestBuilder = new okhttp3.Request.Builder() .url(url) .method(method.toString(), body); diff --git a/src/main/java/com/qiniu/storage/ApiInterceptorAuth.java b/src/main/java/com/qiniu/storage/ApiInterceptorAuth.java index 67022f77..795f1e72 100644 --- a/src/main/java/com/qiniu/storage/ApiInterceptorAuth.java +++ b/src/main/java/com/qiniu/storage/ApiInterceptorAuth.java @@ -35,7 +35,7 @@ Api.Response intercept(Api.Request request, Api.Handler handler) throws QiniuExc return handler.handle(request); } - final static class Builder { + static final class Builder { private Auth auth; Builder setAuth(Auth auth) { diff --git a/src/main/java/com/qiniu/storage/ApiQueryRegion.java b/src/main/java/com/qiniu/storage/ApiQueryRegion.java index 1e8911e0..c0d52826 100644 --- a/src/main/java/com/qiniu/storage/ApiQueryRegion.java +++ b/src/main/java/com/qiniu/storage/ApiQueryRegion.java @@ -20,7 +20,7 @@ public class ApiQueryRegion extends Api { public ApiQueryRegion(Client client) { this(client, new Api.Config.Builder() .setHostRetryMax(DEFAULT_UC_BACKUP_HOSTS.length) - .setHostProvider(HostProvider.ArrayProvider(DEFAULT_UC_BACKUP_HOSTS)) + .setHostProvider(HostProvider.arrayProvider(DEFAULT_UC_BACKUP_HOSTS)) .build()); } diff --git a/src/main/java/com/qiniu/storage/AutoRegion.java b/src/main/java/com/qiniu/storage/AutoRegion.java index e5ac7325..e458215e 100644 --- a/src/main/java/com/qiniu/storage/AutoRegion.java +++ b/src/main/java/com/qiniu/storage/AutoRegion.java @@ -88,7 +88,7 @@ private UCRet queryRegionInfoFromServerIfNeeded(RegionIndex index) throws QiniuE .setRetryInterval(retryInterval) .setHostFreezeDuration(hostFreezeDuration) .setHostRetryMax(ucHosts.length) - .setHostProvider(HostProvider.ArrayProvider(ucHosts)) + .setHostProvider(HostProvider.arrayProvider(ucHosts)) .build()); Response r = api.requestWithInterceptor(new Api.Request(address)); ret = r.jsonToObject(UCRet.class); diff --git a/src/main/java/com/qiniu/storage/BucketManager.java b/src/main/java/com/qiniu/storage/BucketManager.java index 1eee9c95..d3100be0 100644 --- a/src/main/java/com/qiniu/storage/BucketManager.java +++ b/src/main/java/com/qiniu/storage/BucketManager.java @@ -1205,7 +1205,7 @@ private Api.Interceptor[] ucInterceptors() throws QiniuException { Api.Interceptor hostRetryInterceptor = new ApiInterceptorRetryHosts.Builder() .setRetryMax(config.retryMax) .setRetryInterval(Retry.staticInterval(config.retryInterval)) - .setHostProvider(HostProvider.ArrayProvider(ucHosts)) + .setHostProvider(HostProvider.arrayProvider(ucHosts)) .setHostFreezeDuration(config.hostFreezeDuration) .build(); return new Api.Interceptor[]{authInterceptor, hostRetryInterceptor}; diff --git a/src/main/java/com/qiniu/storage/ConfigHelper.java b/src/main/java/com/qiniu/storage/ConfigHelper.java index 30c43f9e..4858e93a 100644 --- a/src/main/java/com/qiniu/storage/ConfigHelper.java +++ b/src/main/java/com/qiniu/storage/ConfigHelper.java @@ -7,7 +7,6 @@ import com.qiniu.util.UrlUtils; import java.util.*; -import java.util.function.Function; class ConfigHelper { private Configuration config; diff --git a/src/main/java/com/qiniu/storage/Configuration.java b/src/main/java/com/qiniu/storage/Configuration.java index 4cf6838a..4c64f5e5 100644 --- a/src/main/java/com/qiniu/storage/Configuration.java +++ b/src/main/java/com/qiniu/storage/Configuration.java @@ -19,9 +19,9 @@ public final class Configuration implements Cloneable { */ public static String defaultRsHost = "rs.qiniu.com"; public static String defaultApiHost = "api.qiniu.com"; - public static String defaultUcHost = "uc.qbox.me"; + public static String defaultUcHost = "kodo-config.qiniuapi.com"; - static final String ucBackUpHost0 = "kodo-config.qiniuapi.com"; + static final String ucBackUpHost0 = "uc.qbox.me"; static final String[] defaultUcHosts = new String[]{defaultUcHost, ucBackUpHost0, defaultApiHost}; /** diff --git a/src/main/java/com/qiniu/storage/FormUploader.java b/src/main/java/com/qiniu/storage/FormUploader.java index 8ab81524..6aaa0763 100644 --- a/src/main/java/com/qiniu/storage/FormUploader.java +++ b/src/main/java/com/qiniu/storage/FormUploader.java @@ -78,7 +78,7 @@ Response uploadFlows() throws QiniuException { .setHostRetryMax(config.retryMax) .setRetryInterval(Retry.staticInterval(config.retryInterval)) .setHostFreezeDuration(config.hostFreezeDuration) - .setHostProvider(HostProvider.ArrayProvider(this.configHelper.upHostsWithoutScheme().toArray(new String[0]))) + .setHostProvider(HostProvider.arrayProvider(this.configHelper.upHostsWithoutScheme().toArray(new String[0]))) .build()); Api.Request request = new Api.Request(urlPrefix); request.setMethod(MethodType.POST); diff --git a/src/main/java/com/qiniu/storage/HostProvider.java b/src/main/java/com/qiniu/storage/HostProvider.java index ee2c7a7f..9722a388 100644 --- a/src/main/java/com/qiniu/storage/HostProvider.java +++ b/src/main/java/com/qiniu/storage/HostProvider.java @@ -8,7 +8,7 @@ public abstract class HostProvider { - public static HostProvider ArrayProvider(String... hosts) { + public static HostProvider arrayProvider(String... hosts) { if (hosts == null || hosts.length == 0) { return null; } diff --git a/src/main/java/com/qiniu/storage/ResumeUploadPerformer.java b/src/main/java/com/qiniu/storage/ResumeUploadPerformer.java index b74e83d7..b30fec94 100644 --- a/src/main/java/com/qiniu/storage/ResumeUploadPerformer.java +++ b/src/main/java/com/qiniu/storage/ResumeUploadPerformer.java @@ -36,7 +36,7 @@ abstract class ResumeUploadPerformer { .setHostRetryMax(ipHosts.size()) .setRetryInterval(Retry.staticInterval(config.retryInterval)) .setHostFreezeDuration(config.hostFreezeDuration) - .setHostProvider(HostProvider.ArrayProvider(ipHosts.toArray(new String[0]))) + .setHostProvider(HostProvider.arrayProvider(ipHosts.toArray(new String[0]))) .build(); } diff --git a/src/main/java/com/qiniu/util/DefaultHeader.java b/src/main/java/com/qiniu/util/DefaultHeader.java index cf9f4c4a..95cc9df8 100644 --- a/src/main/java/com/qiniu/util/DefaultHeader.java +++ b/src/main/java/com/qiniu/util/DefaultHeader.java @@ -1,7 +1,6 @@ package com.qiniu.util; import com.qiniu.http.Client; -import com.qiniu.http.Headers; import java.text.DateFormat; import java.text.SimpleDateFormat; @@ -11,6 +10,9 @@ public final class DefaultHeader { public static final String DISABLE_TIMESTAMP_SIGNATURE_ENV_KEY = "DISABLE_QINIU_TIMESTAMP_SIGNATURE"; + private DefaultHeader() { + } + public static void setDefaultHeader(HeadAdder adder) { if (adder == null) { return; diff --git a/src/main/java/com/qiniu/util/Timestamp.java b/src/main/java/com/qiniu/util/Timestamp.java index 5eaa96e4..415181d6 100644 --- a/src/main/java/com/qiniu/util/Timestamp.java +++ b/src/main/java/com/qiniu/util/Timestamp.java @@ -1,6 +1,10 @@ package com.qiniu.util; public final class Timestamp { + + private Timestamp() { + } + public static long second() { return System.currentTimeMillis() / 1000; } diff --git a/src/test/java/com/qiniu/storage/ApiQueryRegionTest.java b/src/test/java/com/qiniu/storage/ApiQueryRegionTest.java index 93a9f36b..7114e6be 100644 --- a/src/test/java/com/qiniu/storage/ApiQueryRegionTest.java +++ b/src/test/java/com/qiniu/storage/ApiQueryRegionTest.java @@ -2,7 +2,6 @@ import com.qiniu.common.QiniuException; import com.qiniu.http.Client; -import com.qiniu.storage.*; import com.qiniu.util.Timestamp; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; @@ -78,7 +77,7 @@ public void testQueryWithRetry() { .setHostRetryMax(retryMax) .setRetryInterval(1000) .setSingleHostRetryMax(retryMax) - .setHostProvider(HostProvider.ArrayProvider("mock.uc.com", Configuration.defaultUcHost)) + .setHostProvider(HostProvider.arrayProvider("mock.uc.com", Configuration.defaultUcHost)) .build()); ApiQueryRegion.Request request = new ApiQueryRegion.Request("https://mock.uc.com", accessKey, bucket); @@ -89,7 +88,7 @@ public void testQueryWithRetry() { System.out.println("query region data:" + response.getDataMap()); long en = Timestamp.second(); - assertTrue(en - st >= retryMax * 2, "retry interval or retry max error"); + assertTrue(en - st >= retryMax + 1, "retry interval or retry max error"); assertTrue(response.isOK(), response.getResponse() + ""); diff --git a/src/test/java/test/com/qiniu/storage/ApiUploadV1Test.java b/src/test/java/test/com/qiniu/storage/ApiUploadV1Test.java index ea988120..9825ae53 100644 --- a/src/test/java/test/com/qiniu/storage/ApiUploadV1Test.java +++ b/src/test/java/test/com/qiniu/storage/ApiUploadV1Test.java @@ -89,7 +89,7 @@ public void testUpload(boolean isUploadBytes) { try { Field hostsFiled = Region.class.getDeclaredField("srcUpHosts"); hostsFiled.setAccessible(true); - hosts = new ArrayList((List)hostsFiled.get(region)); + hosts = new ArrayList<>((List) hostsFiled.get(region)); } catch (Exception e) { e.printStackTrace(); fail(e); @@ -104,7 +104,7 @@ public void testUpload(boolean isUploadBytes) { .setResponseDebugLevel(Api.Config.DebugLevelNormal) .setResponseDebugLevel(1) .setHostRetryMax(hosts.size()) - .setHostProvider(HostProvider.ArrayProvider(hosts.toArray(new String[0]))) + .setHostProvider(HostProvider.arrayProvider(hosts.toArray(new String[0]))) .build(); if (!isUploadBytes) { // 非 bytes 不支持重试 diff --git a/src/test/java/test/com/qiniu/storage/ApiUploadV2Test.java b/src/test/java/test/com/qiniu/storage/ApiUploadV2Test.java index 5a8a2d0b..e315171b 100644 --- a/src/test/java/test/com/qiniu/storage/ApiUploadV2Test.java +++ b/src/test/java/test/com/qiniu/storage/ApiUploadV2Test.java @@ -94,7 +94,8 @@ private void testUpload(boolean isUploadBytes, boolean isSetContentLength) { try { Field hostsFiled = Region.class.getDeclaredField("srcUpHosts"); hostsFiled.setAccessible(true); - hosts = new ArrayList((List)hostsFiled.get(region)); + List srcHosts = (List) hostsFiled.get(region); + hosts = new ArrayList<>(srcHosts); } catch (Exception e) { e.printStackTrace(); fail(e); @@ -108,7 +109,7 @@ private void testUpload(boolean isUploadBytes, boolean isSetContentLength) { .setRequestDebugLevel(Api.Config.DebugLevelNormal) .setResponseDebugLevel(Api.Config.DebugLevelNormal) .setHostRetryMax(hosts.size()) - .setHostProvider(HostProvider.ArrayProvider(hosts.toArray(new String[0]))) + .setHostProvider(HostProvider.arrayProvider(hosts.toArray(new String[0]))) .build(); if (!isUploadBytes) { // 非 bytes 不支持重试 @@ -193,7 +194,7 @@ private void testUpload(boolean isUploadBytes, boolean isSetContentLength) { ApiUploadV2ListParts listPartsApi = new ApiUploadV2ListParts(client, apiConfig); ApiUploadV2ListParts.Request listPartsRequest = new ApiUploadV2ListParts.Request(urlPrefix, token, uploadId).setKey(key).setMaxParts(2) // 此处仅为示例分页拉去,实际可不配置使用默认值1000 - .setPartNumberMarker(partNumberMarker); + .setPartNumberMarker(partNumberMarker); try { ApiUploadV2ListParts.Response listPartsResponse = listPartsApi.request(listPartsRequest); partNumberMarker = listPartsResponse.getPartNumberMarker(); diff --git a/src/test/java/test/com/qiniu/storage/BucketTest.java b/src/test/java/test/com/qiniu/storage/BucketTest.java index 6e4db5da..5f58384e 100644 --- a/src/test/java/test/com/qiniu/storage/BucketTest.java +++ b/src/test/java/test/com/qiniu/storage/BucketTest.java @@ -8,7 +8,6 @@ import com.qiniu.storage.Configuration; import com.qiniu.storage.model.*; import com.qiniu.util.Json; -import com.qiniu.util.StringMap; import com.qiniu.util.StringUtils; import okhttp3.Call; import okhttp3.OkHttpClient; @@ -75,8 +74,13 @@ public void testCreateBuckets() throws Exception { testFileWithHandler(new TestFileHandler() { @Override public void testFile(TestConfig.TestFile file, BucketManager bucketManager) throws IOException { + String bucket = "java-sdk-test-create-bucket"; + try { + bucketManager.deleteBucket(bucket); + } catch (QiniuException e) { + } + try { - String bucket = "java-sdk-test-create-bucket"; Response response = bucketManager.createBucket(bucket, file.getRegionId()); assertTrue(response.isOK());