@@ -19,6 +19,8 @@ class Region
1919 public $ apiHost ;
2020 //IOVIP域名
2121 public $ iovipHost ;
22+ // TTL
23+ public $ ttl ;
2224
2325 //构造一个Region对象
2426 public function __construct (
@@ -27,7 +29,8 @@ public function __construct(
2729 $ rsHost = "rs-z0.qiniuapi.com " ,
2830 $ rsfHost = "rsf-z0.qiniuapi.com " ,
2931 $ apiHost = "api.qiniuapi.com " ,
30- $ iovipHost = null
32+ $ iovipHost = null ,
33+ $ ttl = null
3134 ) {
3235
3336 $ this ->srcUpHosts = $ srcUpHosts ;
@@ -36,6 +39,7 @@ public function __construct(
3639 $ this ->rsfHost = $ rsfHost ;
3740 $ this ->apiHost = $ apiHost ;
3841 $ this ->iovipHost = $ iovipHost ;
42+ $ this ->ttl = $ ttl ;
3943 }
4044
4145 //华东机房
@@ -165,67 +169,50 @@ public static function regionSeoul()
165169 }
166170
167171 /*
168- * GET /v2/query?ak=<ak>&& bucket=<bucket>
172+ * GET /v2/query?ak=<ak>&bucket=<bucket>
169173 **/
170- public static function queryRegion ($ ak , $ bucket )
174+ public static function queryRegion ($ ak , $ bucket, $ ucHost = null )
171175 {
172- $ Region = new Region ();
173- $ url = Config::API_HOST . '/v2/query ' . "?ak= $ ak&bucket= $ bucket " ;
176+ $ region = new Region ();
177+ if (!$ ucHost ) {
178+ $ ucHost = "https:// " . Config::UC_HOST ;
179+ }
180+ $ url = $ ucHost . '/v4/query ' . "?ak= $ ak&bucket= $ bucket " ;
174181 $ ret = Client::Get ($ url );
175182 if (!$ ret ->ok ()) {
176183 return array (null , new Error ($ url , $ ret ));
177184 }
178185 $ r = ($ ret ->body === null ) ? array () : $ ret ->json ();
179- //parse Region;
180-
181- $ iovipHost = $ r ['io ' ]['src ' ]['main ' ][0 ];
182- $ Region ->iovipHost = $ iovipHost ;
183- $ accMain = $ r ['up ' ]['acc ' ]['main ' ][0 ];
184- array_push ($ Region ->cdnUpHosts , $ accMain );
185- if (isset ($ r ['up ' ]['acc ' ]['backup ' ])) {
186- foreach ($ r ['up ' ]['acc ' ]['backup ' ] as $ key => $ value ) {
187- array_push ($ Region ->cdnUpHosts , $ value );
188- }
189- }
190- $ srcMain = $ r ['up ' ]['src ' ]['main ' ][0 ];
191- array_push ($ Region ->srcUpHosts , $ srcMain );
192- if (isset ($ r ['up ' ]['src ' ]['backup ' ])) {
193- foreach ($ r ['up ' ]['src ' ]['backup ' ] as $ key => $ value ) {
194- array_push ($ Region ->srcUpHosts , $ value );
195- }
186+ if (!is_array ($ r ["hosts " ]) || count ($ r ["hosts " ]) == 0 ) {
187+ return array (null , new Error ($ url , $ ret ));
196188 }
197189
198- //set specific hosts
199- if (strstr ($ Region ->iovipHost , "z1 " ) !== false ) {
200- $ Region ->rsHost = "rs-z1.qiniuapi.com " ;
201- $ Region ->rsfHost = "rsf-z1.qiniuapi.com " ;
202- $ Region ->apiHost = "api-z1.qiniuapi.com " ;
203- } elseif (strstr ($ Region ->iovipHost , "z2 " ) !== false ) {
204- $ Region ->rsHost = "rs-z2.qiniuapi.com " ;
205- $ Region ->rsfHost = "rsf-z2.qiniuapi.com " ;
206- $ Region ->apiHost = "api-z2.qiniuapi.com " ;
207- } elseif (strstr ($ Region ->iovipHost , "cn-east-2 " ) !== false ) {
208- $ Region ->rsHost = "rs-cn-east-2.qiniuapi.com " ;
209- $ Region ->rsfHost = "rsf-cn-east-2.qiniuapi.com " ;
210- $ Region ->apiHost = "api-cn-east-2.qiniuapi.com " ;
211- } elseif (strstr ($ Region ->iovipHost , "na0 " ) !== false ) {
212- $ Region ->rsHost = "rs-na0.qiniuapi.com " ;
213- $ Region ->rsfHost = "rsf-na0.qiniuapi.com " ;
214- $ Region ->apiHost = "api-na0.qiniuapi.com " ;
215- } elseif (strstr ($ Region ->iovipHost , "as0 " ) !== false ) {
216- $ Region ->rsHost = "rs-as0.qiniuapi.com " ;
217- $ Region ->rsfHost = "rsf-as0.qiniuapi.com " ;
218- $ Region ->apiHost = "api-as0.qiniuapi.com " ;
219- } elseif (strstr ($ Region ->iovipHost , "ap-northeast-1 " ) !== false ) {
220- $ Region ->rsHost = "rs-ap-northeast-1.qiniuapi.com " ;
221- $ Region ->rsfHost = "rsf-ap-northeast-1.qiniuapi.com " ;
222- $ Region ->apiHost = "api-ap-northeast-1.qiniuapi.com " ;
190+ // parse region;
191+ $ regionHost = $ r ["hosts " ][0 ];
192+ $ region ->cdnUpHosts = array_merge ($ region ->cdnUpHosts , $ regionHost ['up ' ]['domains ' ]);
193+ $ region ->srcUpHosts = array_merge ($ region ->srcUpHosts , $ regionHost ['up ' ]['domains ' ]);
194+
195+ // set specific hosts
196+ $ region ->iovipHost = $ regionHost ['io ' ]['domains ' ][0 ];
197+ if (isset ($ regionHost ['rs ' ]['domains ' ]) && count ($ regionHost ['rs ' ]['domains ' ]) > 0 ) {
198+ $ region ->rsHost = $ regionHost ['rs ' ]['domains ' ][0 ];
223199 } else {
224- $ Region ->rsHost = "rs.qiniuapi.com " ;
225- $ Region ->rsfHost = "rsf.qiniuapi.com " ;
226- $ Region ->apiHost = "api.qiniuapi.com " ;
200+ $ region ->rsHost = Config::RS_HOST ;
227201 }
202+ if (isset ($ regionHost ['rsf ' ]['domains ' ]) && count ($ regionHost ['rsf ' ]['domains ' ]) > 0 ) {
203+ $ region ->rsfHost = $ regionHost ['rsf ' ]['domains ' ][0 ];
204+ } else {
205+ $ region ->rsfHost = Config::RSF_HOST ;
206+ }
207+ if (isset ($ regionHost ['api ' ]['domains ' ]) && count ($ regionHost ['api ' ]['domains ' ]) > 0 ) {
208+ $ region ->apiHost = $ regionHost ['api ' ]['domains ' ][0 ];
209+ } else {
210+ $ region ->apiHost = Config::API_HOST ;
211+ }
212+
213+ // set ttl
214+ $ region ->ttl = $ regionHost ['ttl ' ];
228215
229- return $ Region ;
216+ return $ region ;
230217 }
231218}
0 commit comments