diff --git a/.idea/misc.xml b/.idea/misc.xml index 5d1998103..fbb68289f 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -37,7 +37,7 @@ - + diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 000000000..94a25f7f4 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 6e50f8ac1..6f249c1be 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,11 @@ ## 7.3.0 (2016-09-30) +### 增加 +* 北美上传地址 + +## 7.3.0 (2016-09-30) + ### 增加 * 自动判断上传存储区 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 516af67f8..458cf50ed 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Sun Jul 12 16:36:40 CST 2015 +#Mon Oct 24 19:53:45 CST 2016 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.13-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-2.14-bin.zip diff --git a/library/build.gradle b/library/build.gradle index 680c9779c..1493827a0 100755 --- a/library/build.gradle +++ b/library/build.gradle @@ -20,8 +20,8 @@ String version = versionName() int code = versionNameToCode(version) android { - compileSdkVersion 23 - buildToolsVersion '23.0.1' + compileSdkVersion 24 + buildToolsVersion '24.0.2' defaultConfig { //applicationId "com.qiniu.android" minSdkVersion 9 diff --git a/library/library.iml b/library/library.iml index aa2fc0a0c..60da428ed 100644 --- a/library/library.iml +++ b/library/library.iml @@ -65,14 +65,6 @@ - - - - - - - - @@ -81,6 +73,14 @@ + + + + + + + + @@ -106,7 +106,7 @@ - + diff --git a/library/src/main/java/com/qiniu/android/common/AutoZone.java b/library/src/main/java/com/qiniu/android/common/AutoZone.java index 86a0e7be7..51fb756ca 100644 --- a/library/src/main/java/com/qiniu/android/common/AutoZone.java +++ b/library/src/main/java/com/qiniu/android/common/AutoZone.java @@ -36,21 +36,6 @@ public AutoZone(boolean https, DnsManager dns) { this.dns = dns; } -// private ZoneInfo getZoneJson(ZoneIndex index) { -// String address = ucServer + "/v1/query?ak=" + index.accessKey + "&bucket=" + index.bucket; -// -// ResponseInfo r = client.syncGet(address, null); -// if (r.isOK()){ -// try { -// return ZoneInfo.buildFromJson(r.response); -// } catch (JSONException e) { -// e.printStackTrace(); -// return null; -// } -// } -// return null; -// } - private void getZoneJsonAsync(ZoneIndex index, CompletionHandler handler) { String address = ucServer + "/v1/query?ak=" + index.accessKey + "&bucket=" + index.bucket; client.asyncGet(address, null, handler); @@ -75,13 +60,6 @@ private void putHosts(ZoneInfo info) { ZoneInfo zoneInfo(String ak, String bucket) { ZoneIndex index = new ZoneIndex(ak, bucket); ZoneInfo info = zones.get(index); -// if (info == null) { -// info = getZoneJson(index); -// if (info != null) { -// zones.put(index, info); -// putHosts(info); -// } -// } return info; } @@ -125,7 +103,7 @@ public ServiceAddress upHostBackup(String token) { return new ServiceAddress(info.upBackup, new String[]{info.upIp}); } - void preQueryIndex(final ZoneIndex index, final QueryHandler complete){ + void preQueryIndex(final ZoneIndex index, final QueryHandler complete) { if (index == null) { complete.onFailure(ResponseInfo.InvalidToken); return; @@ -153,6 +131,7 @@ public void complete(ResponseInfo info, JSONObject response) { } }); } + @Override public void preQuery(String token, QueryHandler complete) { ZoneIndex index = ZoneIndex.getFromToken(token); diff --git a/library/src/main/java/com/qiniu/android/common/Constants.java b/library/src/main/java/com/qiniu/android/common/Constants.java index 4be59644d..c4ac5a2a1 100644 --- a/library/src/main/java/com/qiniu/android/common/Constants.java +++ b/library/src/main/java/com/qiniu/android/common/Constants.java @@ -2,7 +2,7 @@ public final class Constants { - public static final String VERSION = "7.3.0"; + public static final String VERSION = "7.3.1"; public static final String UTF_8 = "utf-8"; } diff --git a/library/src/main/java/com/qiniu/android/common/FixedZone.java b/library/src/main/java/com/qiniu/android/common/FixedZone.java index d281b8598..f7f210399 100644 --- a/library/src/main/java/com/qiniu/android/common/FixedZone.java +++ b/library/src/main/java/com/qiniu/android/common/FixedZone.java @@ -13,10 +13,11 @@ public FixedZone(ServiceAddress up, ServiceAddress upBackup) { this.upBackup = upBackup; } - public ServiceAddress upHost(String token){ + public ServiceAddress upHost(String token) { return up; } - public ServiceAddress upHostBackup(String token){ + + public ServiceAddress upHostBackup(String token) { return upBackup; } diff --git a/library/src/main/java/com/qiniu/android/common/Zone.java b/library/src/main/java/com/qiniu/android/common/Zone.java index c410ad4b7..b866c9c50 100644 --- a/library/src/main/java/com/qiniu/android/common/Zone.java +++ b/library/src/main/java/com/qiniu/android/common/Zone.java @@ -1,7 +1,6 @@ package com.qiniu.android.common; import com.qiniu.android.dns.DnsManager; -import com.qiniu.android.http.CompletionHandler; /** * Created by bailong on 15/10/10. @@ -9,21 +8,15 @@ public abstract class Zone { public static final Zone zone0 = createZone("upload.qiniu.com", "up.qiniu.com", "183.136.139.10", "115.231.182.136"); + public static final Zone zone1 = createZone("upload-z1.qiniu.com", "up-z1.qiniu.com", "106.38.227.27", "106.38.227.28"); public static final Zone zone2 = createZone("upload-z2.qiniu.com", "up-z2.qiniu.com", "183.60.214.197", "14.152.37.7"); - /** - * 默认上传服务器 - */ - public abstract ServiceAddress upHost(String token); - - /** - * 备用上传服务器,当默认服务器网络连接失败时使用 - */ - public abstract ServiceAddress upHostBackup(String token); + public static final Zone zoneNa0 = + createZone("upload-na0.qiniu.com", "up-na0.qiniu.com", "23.236.102.3", "23.236.102.2"); private static Zone createZone(String upHost, String upHostBackup, String upIp, String upIp2) { String[] upIps = {upIp, upIp2}; @@ -32,7 +25,7 @@ private static Zone createZone(String upHost, String upHostBackup, String upIp, return new FixedZone(up, upBackup); } - public static void addDnsIp(DnsManager dns){ + public static void addDnsIp(DnsManager dns) { zone0.upHost("").addIpToDns(dns); zone0.upHostBackup("").addIpToDns(dns); @@ -43,10 +36,21 @@ public static void addDnsIp(DnsManager dns){ zone2.upHostBackup("").addIpToDns(dns); } - public interface QueryHandler{ + /** + * 默认上传服务器 + */ + public abstract ServiceAddress upHost(String token); + + /** + * 备用上传服务器,当默认服务器网络连接失败时使用 + */ + public abstract ServiceAddress upHostBackup(String token); + + public abstract void preQuery(String token, QueryHandler complete); + + public interface QueryHandler { void onSuccess(); + void onFailure(int reason); } - - public abstract void preQuery(String token, QueryHandler complete); } diff --git a/library/src/main/java/com/qiniu/android/http/Client.java b/library/src/main/java/com/qiniu/android/http/Client.java index b00e7feca..2cdeb6d49 100644 --- a/library/src/main/java/com/qiniu/android/http/Client.java +++ b/library/src/main/java/com/qiniu/android/http/Client.java @@ -138,6 +138,51 @@ private static JSONObject buildJsonResp(byte[] body) throws Exception { return new JSONObject(str); } + private static ResponseInfo buildResponseInfo(okhttp3.Response response, String ip, long duration) { + int code = response.code(); + String reqId = response.header("X-Reqid"); + reqId = (reqId == null) ? null : reqId.trim(); + byte[] body = null; + String error = null; + try { + body = response.body().bytes(); + } catch (IOException e) { + error = e.getMessage(); + } + JSONObject json = null; + if (ctype(response).equals(Client.JsonMime) && body != null) { + try { + json = buildJsonResp(body); + if (response.code() != 200) { + String err = new String(body, Constants.UTF_8); + error = json.optString("error", err); + } + } catch (Exception e) { + if (response.code() < 300) { + error = e.getMessage(); + } + } + } else { + error = body == null ? "null body" : new String(body); + } + + HttpUrl u = response.request().url(); + return new ResponseInfo(json, code, reqId, response.header("X-Log"), + via(response), u.host(), u.encodedPath(), ip, u.port(), duration, 0, error); + } + + private static void onRet(okhttp3.Response response, String ip, long duration, + final CompletionHandler complete) { + final ResponseInfo info = buildResponseInfo(response, ip, duration); + + AsyncRun.runInMain(new Runnable() { + @Override + public void run() { + complete.complete(info, info.response); + } + }); + } + public void asyncSend(final Request.Builder requestBuilder, StringMap headers, final CompletionHandler complete) { if (headers != null) { headers.forEach(new StringMap.Consumer() { @@ -252,52 +297,7 @@ public void accept(String key, Object value) { asyncSend(requestBuilder, null, completionHandler); } - private static ResponseInfo buildResponseInfo(okhttp3.Response response, String ip, long duration){ - int code = response.code(); - String reqId = response.header("X-Reqid"); - reqId = (reqId == null) ? null : reqId.trim(); - byte[] body = null; - String error = null; - try { - body = response.body().bytes(); - } catch (IOException e) { - error = e.getMessage(); - } - JSONObject json = null; - if (ctype(response).equals(Client.JsonMime) && body != null) { - try { - json = buildJsonResp(body); - if (response.code() != 200) { - String err = new String(body, Constants.UTF_8); - error = json.optString("error", err); - } - } catch (Exception e) { - if (response.code() < 300) { - error = e.getMessage(); - } - } - } else { - error = body == null ? "null body" : new String(body); - } - - HttpUrl u = response.request().url(); - return new ResponseInfo(json, code, reqId, response.header("X-Log"), - via(response), u.host(), u.encodedPath(), ip, u.port(), duration, 0, error); - } - - private static void onRet(okhttp3.Response response, String ip, long duration, - final CompletionHandler complete) { - final ResponseInfo info = buildResponseInfo(response, ip, duration); - - AsyncRun.runInMain(new Runnable() { - @Override - public void run() { - complete.complete(info, info.response); - } - }); - } - - public void asyncGet(String url, StringMap headers, CompletionHandler completionHandler){ + public void asyncGet(String url, StringMap headers, CompletionHandler completionHandler) { Request.Builder requestBuilder = new Request.Builder().get().url(url); asyncSend(requestBuilder, headers, completionHandler); } diff --git a/library/src/main/java/com/qiniu/android/storage/Configuration.java b/library/src/main/java/com/qiniu/android/storage/Configuration.java index 95cf3a69c..72fcb9d9c 100644 --- a/library/src/main/java/com/qiniu/android/storage/Configuration.java +++ b/library/src/main/java/com/qiniu/android/storage/Configuration.java @@ -1,7 +1,6 @@ package com.qiniu.android.storage; -import com.qiniu.android.common.ServiceAddress; import com.qiniu.android.common.Zone; import com.qiniu.android.dns.DnsManager; import com.qiniu.android.dns.IResolver; @@ -83,13 +82,13 @@ private Configuration(Builder builder) { urlConverter = builder.urlConverter; - zone = builder.zone == null? Zone.zone0 : builder.zone; + zone = builder.zone == null ? Zone.zone0 : builder.zone; dns = initDns(builder); } private static DnsManager initDns(Builder builder) { DnsManager d = builder.dns; - if (d != null){ + if (d != null) { Zone.addDnsIp(d); } diff --git a/library/src/main/java/com/qiniu/android/storage/FormUploader.java b/library/src/main/java/com/qiniu/android/storage/FormUploader.java index 448f3b59d..1f206aa75 100644 --- a/library/src/main/java/com/qiniu/android/storage/FormUploader.java +++ b/library/src/main/java/com/qiniu/android/storage/FormUploader.java @@ -135,7 +135,7 @@ public void complete(ResponseInfo info, JSONObject response) { }; URI u = config.zone.upHost(token.token).address; if (config.zone.upHostBackup(token.token) != null - &&(info.needSwitchServer() || info.isNotQiniu())) { + && (info.needSwitchServer() || info.isNotQiniu())) { u = config.zone.upHostBackup(token.token).address; } diff --git a/library/src/main/java/com/qiniu/android/storage/ResumeUploader.java b/library/src/main/java/com/qiniu/android/storage/ResumeUploader.java index b5c5a4e35..e02680f9b 100644 --- a/library/src/main/java/com/qiniu/android/storage/ResumeUploader.java +++ b/library/src/main/java/com/qiniu/android/storage/ResumeUploader.java @@ -280,7 +280,7 @@ public void complete(ResponseInfo info, JSONObject response) { } if (config.zone.upHostBackup(token.token) != null - &&((isNotChunkToQiniu(info, response) || info.needRetry()) + && ((isNotChunkToQiniu(info, response) || info.needRetry()) && retried < config.retryMax)) { nextTask(offset, retried + 1, config.zone.upHostBackup(token.token).address); return; diff --git a/library/src/main/java/com/qiniu/android/utils/AsyncRun.java b/library/src/main/java/com/qiniu/android/utils/AsyncRun.java index b587f22ee..423fc289b 100644 --- a/library/src/main/java/com/qiniu/android/utils/AsyncRun.java +++ b/library/src/main/java/com/qiniu/android/utils/AsyncRun.java @@ -12,7 +12,7 @@ public static void runInMain(Runnable r) { h.post(r); } - public static void runInBack(Runnable r){ + public static void runInBack(Runnable r) { } }