|
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