|
2 | 2 |
|
3 | 3 | import com.qiniu.http.Client;
|
4 | 4 | import com.qiniu.http.Response;
|
5 |
| -import com.qiniu.util.Json; |
6 |
| -import com.qiniu.util.UrlSafeBase64; |
7 | 5 |
|
8 | 6 | import java.util.List;
|
9 | 7 | import java.util.Map;
|
@@ -54,77 +52,143 @@ ZoneInfo zoneInfo(String ak, String bucket) throws QiniuException {
|
54 | 52 | }
|
55 | 53 |
|
56 | 54 | // only for test public
|
57 |
| - ZoneInfo queryByToken(String token) { |
| 55 | + ZoneInfo queryByToken(ZoneReqInfo ab) { |
58 | 56 | try {
|
59 |
| - // http://developer.qiniu.com/article/developer/security/upload-token.html |
60 |
| - // http://developer.qiniu.com/article/developer/security/put-policy.html |
61 |
| - String[] strings = token.split(":"); |
62 |
| - String ak = strings[0]; |
63 |
| - String policy = new String(UrlSafeBase64.decode(strings[2]), Constants.UTF_8); |
64 |
| - String bkt = Json.decode(policy).get("scope").toString().split(":")[0]; |
65 |
| - return zoneInfo(ak, bkt); |
| 57 | + return zoneInfo(ab.ak, ab.bucket); |
66 | 58 | } catch (Exception e) {
|
67 | 59 | e.printStackTrace();
|
68 | 60 | }
|
69 | 61 | return null;
|
70 | 62 | }
|
71 | 63 |
|
72 |
| - public String upHost(String token) { |
73 |
| - ZoneInfo info = queryByToken(token); |
| 64 | + @Override |
| 65 | + public String getUpHttp(ZoneReqInfo ab) { |
| 66 | + ZoneInfo info = queryByToken(ab); |
74 | 67 | if (info == null) {
|
75 | 68 | return "";
|
76 | 69 | }
|
77 |
| - return info.upHost; |
| 70 | + return info.upHttp; |
78 | 71 | }
|
79 | 72 |
|
80 |
| - public String upHostBackup(String token) { |
81 |
| - ZoneInfo info = queryByToken(token); |
| 73 | + @Override |
| 74 | + public String getUpBackupHttp(ZoneReqInfo ab) { |
| 75 | + ZoneInfo info = queryByToken(ab); |
82 | 76 | if (info == null) {
|
83 | 77 | return "";
|
84 | 78 | }
|
85 |
| - return info.upBackup; |
| 79 | + return info.upBackupHttp; |
86 | 80 | }
|
87 | 81 |
|
88 |
| - public String upIpBackup(String token) { |
89 |
| - ZoneInfo info = queryByToken(token); |
| 82 | + @Override |
| 83 | + public String getUpIpHttp(ZoneReqInfo ab) { |
| 84 | + ZoneInfo info = queryByToken(ab); |
90 | 85 | if (info == null) {
|
91 | 86 | return "";
|
92 | 87 | }
|
93 |
| - return info.upIp; |
| 88 | + return info.upIpHttp; |
94 | 89 | }
|
95 | 90 |
|
96 |
| - public String upHostHttps(String token) { |
97 |
| - ZoneInfo info = queryByToken(token); |
| 91 | + @Override |
| 92 | + public String getIovipHttp(ZoneReqInfo ab) { |
| 93 | + ZoneInfo info = queryByToken(ab); |
| 94 | + if (info == null) { |
| 95 | + return ""; |
| 96 | + } |
| 97 | + return info.iovipHttp; |
| 98 | + } |
| 99 | + |
| 100 | + |
| 101 | + @Override |
| 102 | + public String getUpHttps(ZoneReqInfo ab) { |
| 103 | + ZoneInfo info = queryByToken(ab); |
98 | 104 | if (info == null) {
|
99 | 105 | return "";
|
100 | 106 | }
|
101 | 107 | return info.upHttps;
|
102 | 108 | }
|
103 | 109 |
|
| 110 | + @Override |
| 111 | + public String getUpBackupHttps(ZoneReqInfo ab) { |
| 112 | + ZoneInfo info = queryByToken(ab); |
| 113 | + if (info == null) { |
| 114 | + return ""; |
| 115 | + } |
| 116 | + return info.upBackupHttps; |
| 117 | + } |
| 118 | + |
| 119 | + @Override |
| 120 | + public String getUpIpHttps(ZoneReqInfo ab) { |
| 121 | + ZoneInfo info = queryByToken(ab); |
| 122 | + if (info == null) { |
| 123 | + return ""; |
| 124 | + } |
| 125 | + return info.upIpHttps; |
| 126 | + } |
| 127 | + |
| 128 | + @Override |
| 129 | + public String getIovipHttps(ZoneReqInfo ab) { |
| 130 | + ZoneInfo info = queryByToken(ab); |
| 131 | + if (info == null) { |
| 132 | + return ""; |
| 133 | + } |
| 134 | + return info.iovipHttps; |
| 135 | + } |
| 136 | + |
| 137 | + |
| 138 | + |
104 | 139 | static class ZoneInfo {
|
105 |
| - final String ioHost; |
106 |
| - final String upHost; |
107 |
| - final String upIp; |
108 |
| - final String upBackup; |
109 |
| - final String upHttps; |
| 140 | + final String upHttp; |
| 141 | + final String upBackupHttp; |
| 142 | + final String upIpHttp; |
| 143 | + final String iovipHttp; |
110 | 144 |
|
111 |
| - private ZoneInfo(String ioHost, String upHost, String upIp, String upBackup, String upHttps) { |
112 |
| - this.ioHost = ioHost; |
113 |
| - this.upHost = upHost; |
114 |
| - this.upIp = upIp; |
115 |
| - this.upBackup = upBackup; |
| 145 | + final String upHttps; |
| 146 | + final String upBackupHttps; |
| 147 | + final String upIpHttps; |
| 148 | + final String iovipHttps; |
| 149 | + |
| 150 | + private ZoneInfo(String upHttp, String upBackupHttp, String upIpHttp, String iovipHttp, |
| 151 | + String upHttps, String upBackupHttps, String upIpHttps, String iovipHttps) { |
| 152 | + this.upHttp = upHttp; |
| 153 | + this.upBackupHttp = upBackupHttp; |
| 154 | + this.upIpHttp = upIpHttp; |
| 155 | + this.iovipHttp = iovipHttp; |
116 | 156 | this.upHttps = upHttps;
|
| 157 | + this.upBackupHttps = upBackupHttps; |
| 158 | + this.upIpHttps = upIpHttps; |
| 159 | + this.iovipHttps = iovipHttps; |
117 | 160 | }
|
118 | 161 |
|
| 162 | + /* |
| 163 | + * {"ttl":86400, |
| 164 | + * "http": |
| 165 | + * { |
| 166 | + * "io":["http://iovip.qbox.me"], |
| 167 | + * "up":["http://up.qiniu.com","http://upload.qiniu.com", |
| 168 | + * "-H up.qiniu.com http://183.136.139.16"] |
| 169 | + * }, |
| 170 | + * "https":{"io":["https://iovip.qbox.me"],"up":["https://up.qbox.me"]}} |
| 171 | + * */ |
119 | 172 | static ZoneInfo buildFromUcRet(UCRet ret) {
|
120 |
| - String ioHost = ret.http.get("io").get(0); |
121 |
| - List<String> up = ret.http.get("up"); |
122 |
| - String upHost = up.get(0); |
123 |
| - String upBackup = up.get(1); |
124 |
| - String upIp = up.get(2).split(" ")[2].split("//")[1]; |
125 |
| - String upHttps = ret.https.get("up").get(0); |
126 |
| - |
127 |
| - return new ZoneInfo(ioHost, upHost, upIp, upBackup, upHttps); |
| 173 | + List<String> upsHttp = ret.http.get("up"); |
| 174 | + String upHttp = upsHttp.get(0); |
| 175 | + String upBackupHttp = upsHttp.get(1); |
| 176 | + String upIpHttp = upsHttp.get(2).split(" ")[2].split("//")[1]; |
| 177 | + String ioHttp = ret.http.get("io").get(0); |
| 178 | + |
| 179 | + List<String> upsHttps = ret.https.get("up"); |
| 180 | + String upHttps = upsHttps.get(0); |
| 181 | + String upBackupHttps = upHttps; |
| 182 | + String upIpHttps = ""; |
| 183 | + if (upsHttps.size() > 1) { |
| 184 | + upBackupHttps = upsHttps.get(1); |
| 185 | + } |
| 186 | + if (upsHttps.size() > 2) { |
| 187 | + upIpHttps = upsHttps.get(2).split(" ")[2].split("//")[1]; |
| 188 | + } |
| 189 | + String ioHttps = ret.https.get("io").get(0); |
| 190 | + |
| 191 | + return new ZoneInfo(upHttp, upBackupHttp, upIpHttp, ioHttp, upHttps, upBackupHttps, upIpHttps, ioHttps); |
128 | 192 | }
|
129 | 193 | }
|
130 | 194 |
|
|
0 commit comments