Passed
Push — master ( 0e9296...4dc187 )
by
unknown
20:54 queued 12s
created

Region::regionHuadong2()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 9
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
eloc 7
nc 1
nop 0
dl 0
loc 9
ccs 0
cts 7
cp 0
crap 2
rs 10
c 0
b 0
f 0
1
<?php
2
namespace Qiniu;
3
4
use Qiniu\Http\Client;
5
use Qiniu\Http\Error;
6
7
class Region
8
{
9
10
    //源站上传域名
11
    public $srcUpHosts;
12
    //CDN加速上传域名
13
    public $cdnUpHosts;
14
    //资源管理域名
15
    public $rsHost;
16
    //资源列举域名
17
    public $rsfHost;
18
    //资源处理域名
19
    public $apiHost;
20
    //IOVIP域名
21
    public $iovipHost;
22
23
    //构造一个Region对象
24 30
    public function __construct(
25
        $srcUpHosts = array(),
26
        $cdnUpHosts = array(),
27
        $rsHost = "rs.qiniu.com",
28
        $rsfHost = "rsf.qiniu.com",
29
        $apiHost = "api.qiniu.com",
30
        $iovipHost = null
31
    ) {
32
33 30
        $this->srcUpHosts = $srcUpHosts;
34 30
        $this->cdnUpHosts = $cdnUpHosts;
35 30
        $this->rsHost = $rsHost;
36 30
        $this->rsfHost = $rsfHost;
37 30
        $this->apiHost = $apiHost;
38 30
        $this->iovipHost = $iovipHost;
39 30
    }
40
41
    //华东机房
42
    public static function regionHuadong()
43
    {
44
        $regionHuadong = new Region(
45
            array("up.qiniup.com", 'up-jjh.qiniup.com', 'up-xs.qiniup.com'),
46
            array('upload.qiniup.com', 'upload-jjh.qiniup.com', 'upload-xs.qiniup.com'),
47
            'rs.qbox.me',
48
            'rsf.qbox.me',
49
            'api.qiniu.com',
50
            'iovip.qbox.me'
51
        );
52
        return $regionHuadong;
53
    }
54
55
    //华东机房内网上传
56
    public static function qvmRegionHuadong()
57
    {
58
        $qvmRegionHuadong = new Region(
59
            array("free-qvm-z0-xs.qiniup.com"),
60
            'rs.qbox.me',
61
            'rsf.qbox.me',
62
            'api.qiniu.com',
63
            'iovip.qbox.me'
64
        );
65
        return $qvmRegionHuadong;
66
    }
67
68
    //华北机房内网上传
69
    public static function qvmRegionHuabei()
70
    {
71
        $qvmRegionHuabei = new Region(
72
            array("free-qvm-z1-zz.qiniup.com"),
73
            "rs-z1.qbox.me",
74
            "rsf-z1.qbox.me",
75
            "api-z1.qiniu.com",
76
            "iovip-z1.qbox.me"
77
        );
78
        return $qvmRegionHuabei;
79
    }
80
81
    //华北机房
82
    public static function regionHuabei()
83
    {
84
        $regionHuabei = new Region(
85
            array('up-z1.qiniup.com'),
86
            array('upload-z1.qiniup.com'),
87
            "rs-z1.qbox.me",
88
            "rsf-z1.qbox.me",
89
            "api-z1.qiniu.com",
90
            "iovip-z1.qbox.me"
91
        );
92
93
        return $regionHuabei;
94
    }
95
96
    //华南机房
97
    public static function regionHuanan()
98
    {
99
        $regionHuanan = new Region(
100
            array('up-z2.qiniup.com', 'up-dg.qiniup.com', 'up-fs.qiniup.com'),
101
            array('upload-z2.qiniup.com', 'upload-dg.qiniup.com', 'upload-fs.qiniup.com'),
102
            "rs-z2.qbox.me",
103
            "rsf-z2.qbox.me",
104
            "api-z2.qiniu.com",
105
            "iovip-z2.qbox.me"
106
        );
107
        return $regionHuanan;
108
    }
109
110
    //华东2 机房
111
    public static function regionHuadong2()
112
    {
113
        return new Region(
114
            array('up-cn-east-2.qiniup.com'),
115
            array('upload-cn-east-2.qiniup.com'),
116
            "rs-cn-east-2.qiniuapi.com",
117
            "rsf-cn-east-2.qiniuapi.com",
118
            "api-cn-east-2.qiniuapi.com",
119
            "iovip-cn-east-2.qiniuio.com"
120
        );
121
    }
122
123
    //北美机房
124
    public static function regionNorthAmerica()
125
    {
126
        //北美机房
127
        $regionNorthAmerica = new Region(
128
            array('up-na0.qiniup.com'),
129
            array('upload-na0.qiniup.com'),
130
            "rs-na0.qbox.me",
131
            "rsf-na0.qbox.me",
132
            "api-na0.qiniu.com",
133
            "iovip-na0.qbox.me"
134
        );
135
        return $regionNorthAmerica;
136
    }
137
138
    //新加坡机房
139
    public static function regionSingapore()
140
    {
141
        //新加坡机房
142
        $regionSingapore = new Region(
143 27
            array('up-as0.qiniup.com'),
144
            array('upload-as0.qiniup.com'),
145 27
            "rs-as0.qbox.me",
146 27
            "rsf-as0.qbox.me",
147 27
            "api-as0.qiniu.com",
148 27
            "iovip-as0.qbox.me"
149
        );
150
        return $regionSingapore;
151 27
    }
152
153
    //首尔
154 27
    public static function regionSeoul()
155 27
    {
156 27
        //首尔
157 27
        return new Region(
158 27
            array('up-ap-northeast-1.qiniup.com'),
159 27
            array('upload-ap-northeast-1.qiniup.com'),
160 27
            "rs-ap-northeast-1.qiniuapi.com",
161 27
            "rsf-ap-northeast-1.qiniuapi.com",
162 27
            "api-ap-northeast-1.qiniuapi.com",
163 27
            "iovip-ap-northeast-1.qiniuio.com"
164 27
        );
165 27
    }
166 27
167 27
    /*
168 27
     * GET /v2/query?ak=<ak>&&bucket=<bucket>
169 27
     **/
170
    public static function queryRegion($ak, $bucket)
171
    {
172 27
        $Region = new Region();
173 6
        $url = Config::API_HOST . '/v2/query' . "?ak=$ak&bucket=$bucket";
174 6
        $ret = Client::Get($url);
175 6
        if (!$ret->ok()) {
176 27
            return array(null, new Error($url, $ret));
177
        }
178
        $r = ($ret->body === null) ? array() : $ret->json();
179
        //parse Region;
180 27
181 6
        $iovipHost = $r['io']['src']['main'][0];
182 6
        $Region->iovipHost = $iovipHost;
183 6
        $accMain = $r['up']['acc']['main'][0];
184 27
        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 27
        }
190 27
        $srcMain = $r['up']['src']['main'][0];
191 27
        array_push($Region->srcUpHosts, $srcMain);
192
        if (isset($r['up']['src']['backup'])) {
193
            foreach ($r['up']['src']['backup'] as $key => $value) {
194 27
                array_push($Region->srcUpHosts, $value);
195
            }
196
        }
197
198
        //set specific hosts
199
        if (strstr($Region->iovipHost, "z1") !== false) {
200
            $Region->rsHost = "rs-z1.qbox.me";
201
            $Region->rsfHost = "rsf-z1.qbox.me";
202
            $Region->apiHost = "api-z1.qiniu.com";
203
        } elseif (strstr($Region->iovipHost, "z2") !== false) {
204
            $Region->rsHost = "rs-z2.qbox.me";
205
            $Region->rsfHost = "rsf-z2.qbox.me";
206
            $Region->apiHost = "api-z2.qiniu.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.qbox.me";
213
            $Region->rsfHost = "rsf-na0.qbox.me";
214
            $Region->apiHost = "api-na0.qiniu.com";
215
        } elseif (strstr($Region->iovipHost, "as0") !== false) {
216
            $Region->rsHost = "rs-as0.qbox.me";
217
            $Region->rsfHost = "rsf-as0.qbox.me";
218
            $Region->apiHost = "api-as0.qiniu.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";
223
        } else {
224
            $Region->rsHost = "rs.qbox.me";
225
            $Region->rsfHost = "rsf.qbox.me";
226
            $Region->apiHost = "api.qiniu.com";
227
        }
228
229
        return $Region;
230
    }
231
}
232