Skip to content

Commit 250bd07

Browse files
author
yangsen
committed
uc query to v3
1 parent 876557a commit 250bd07

File tree

1 file changed

+57
-39
lines changed

1 file changed

+57
-39
lines changed

src/main/java/com/qiniu/storage/AutoRegion.java

Lines changed: 57 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ private UCRet queryRegionInfoFromServerIfNeeded(RegionIndex index) throws QiniuE
5050
return ret;
5151
}
5252

53-
String address = ucServer + "/v4/query?ak=" + index.accessKey + "&bucket=" + index.bucket;
53+
String address = ucServer + "/v3/query?ak=" + index.accessKey + "&bucket=" + index.bucket;
5454
Response r = client.get(address);
5555
ret = r.jsonToObject(UCRet.class);
5656
if (ret != null) {
@@ -66,7 +66,7 @@ static Region regionGroup(UCRet ret) {
6666
}
6767

6868
RegionGroup group = new RegionGroup();
69-
for (HostRet host : ret.hosts) {
69+
for (ServerRets host : ret.hosts) {
7070
Region region = host.createRegion();
7171
group.addRegion(region);
7272
}
@@ -267,41 +267,35 @@ private class UCRet {
267267
// 有效期, 单位秒
268268
long deadline;
269269

270-
HostRet[] hosts;
271-
272-
HostRet universal;
270+
ServerRets[] hosts;
273271

274272
private boolean isValid() {
275273
return System.currentTimeMillis() < deadline * 1000;
276274
}
277275

278276
private void setupDeadline() {
279-
long ttl = 60;
280-
281-
HostRet ret = universal;
282-
if (ret == null && hosts != null && hosts.length > 0) {
283-
ret = hosts[0];
284-
}
285-
286-
if (ret != null) {
287-
ttl = ret.ttl;
277+
long ttl = (1L << 31) - 1;
278+
if (hosts != null && hosts.length > 0) {
279+
for (ServerRets hostRet : hosts) {
280+
if (hostRet != null && hostRet.ttl < ttl) {
281+
ttl = hostRet.ttl;
282+
}
283+
}
288284
}
289285
deadline = System.currentTimeMillis() / 1000 + ttl;
290286
}
291287
}
292288

293-
private class HostRet {
289+
private class ServerRets {
294290
long ttl;
295291

296-
String[] support_apis;
297-
298292
String region;
299-
HostInfoRet up;
300-
HostInfoRet rs;
301-
HostInfoRet rsf;
302-
HostInfoRet uc;
303-
HostInfoRet api;
304-
HostInfoRet io;
293+
ServerRet up;
294+
ServerRet rs;
295+
ServerRet rsf;
296+
ServerRet uc;
297+
ServerRet api;
298+
ServerRet io;
305299

306300
Region createRegion() {
307301
long timestamp = ttl + System.currentTimeMillis() / 1000;
@@ -347,37 +341,61 @@ Region createRegion() {
347341
}
348342
}
349343

350-
private class HostInfoRet {
351-
List<String> domains;
352-
List<String> old;
344+
private class ServerRet {
345+
HostInfoRet src;
346+
HostInfoRet acc;
353347

354348
private String getOneHost() {
355-
if (domains != null && domains.size() > 0) {
356-
return domains.get(0);
357-
} else {
358-
return null;
349+
String host = null;
350+
if (src != null) {
351+
host = src.getOneHost();
352+
}
353+
354+
if (host == null && acc != null) {
355+
host = acc.getOneHost();
359356
}
357+
return host;
360358
}
361359

362360
private List<String> allSrcHosts() {
363-
List<String> hosts = new ArrayList<>();
364-
if (domains != null && domains.size() > 1) {
365-
for (int i = 1; i < domains.size(); i++) {
366-
hosts.add(domains.get(i));
367-
}
361+
if (src != null) {
362+
return src.allHosts();
368363
} else {
369364
return new ArrayList<>();
370365
}
371-
return hosts;
372366
}
373367

374368
private List<String> allAccHosts() {
375-
List<String> hosts = new ArrayList<>();
376-
if (domains != null && domains.size() > 0) {
377-
hosts.add(domains.get(0));
369+
if (acc != null) {
370+
return acc.allHosts();
378371
} else {
379372
return new ArrayList<>();
380373
}
374+
}
375+
}
376+
377+
private class HostInfoRet {
378+
List<String> main;
379+
List<String> backup;
380+
381+
private String getOneHost() {
382+
if (main != null && main.size() > 0) {
383+
return main.get(0);
384+
} else if (backup != null && backup.size() > 0) {
385+
return backup.get(0);
386+
} else {
387+
return null;
388+
}
389+
}
390+
391+
private List<String> allHosts() {
392+
List<String> hosts = new ArrayList<>();
393+
if (main != null && main.size() > 0) {
394+
hosts.addAll(main);
395+
}
396+
if (backup != null && backup.size() > 0) {
397+
hosts.addAll(backup);
398+
}
381399
return hosts;
382400
}
383401
}

0 commit comments

Comments
 (0)