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) {
}
}