first commit
This commit is contained in:
1
金壶/ydyd_service/extend/Aliyun/core/.pydio
Normal file
1
金壶/ydyd_service/extend/Aliyun/core/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
f0ea1879-7175-4d22-b8e0-4de68140a40c
|
||||
140
金壶/ydyd_service/extend/Aliyun/core/AcsRequest.php
Normal file
140
金壶/ydyd_service/extend/Aliyun/core/AcsRequest.php
Normal file
@@ -0,0 +1,140 @@
|
||||
<?php
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
abstract class AcsRequest
|
||||
{
|
||||
protected $version;
|
||||
protected $product;
|
||||
protected $actionName;
|
||||
protected $regionId;
|
||||
protected $acceptFormat;
|
||||
protected $method;
|
||||
protected $protocolType = "http";
|
||||
protected $content;
|
||||
|
||||
protected $queryParameters = array();
|
||||
protected $headers = array();
|
||||
|
||||
function __construct($product, $version, $actionName)
|
||||
{
|
||||
$this->headers["x-sdk-client"] = "php/2.0.0";
|
||||
$this->product = $product;
|
||||
$this->version = $version;
|
||||
$this->actionName = $actionName;
|
||||
}
|
||||
|
||||
public abstract function composeUrl($iSigner, $credential, $domain);
|
||||
|
||||
public function getVersion()
|
||||
{
|
||||
return $this->version;
|
||||
}
|
||||
|
||||
public function setVersion($version)
|
||||
{
|
||||
$this->version = $version;
|
||||
}
|
||||
|
||||
public function getProduct()
|
||||
{
|
||||
return $this->product;
|
||||
}
|
||||
|
||||
public function setProduct($product)
|
||||
{
|
||||
$this->product = $product;
|
||||
}
|
||||
|
||||
public function getActionName()
|
||||
{
|
||||
return $this->actionName;
|
||||
}
|
||||
|
||||
public function setActionName($actionName)
|
||||
{
|
||||
$this->actionName = $actionName;
|
||||
}
|
||||
|
||||
public function getAcceptFormat()
|
||||
{
|
||||
return $this->acceptFormat;
|
||||
}
|
||||
|
||||
public function setAcceptFormat($acceptFormat)
|
||||
{
|
||||
$this->acceptFormat = $acceptFormat;
|
||||
}
|
||||
|
||||
public function getQueryParameters()
|
||||
{
|
||||
return $this->queryParameters;
|
||||
}
|
||||
|
||||
public function getHeaders()
|
||||
{
|
||||
return $this->headers;
|
||||
}
|
||||
|
||||
public function getMethod()
|
||||
{
|
||||
return $this->method;
|
||||
}
|
||||
|
||||
public function setMethod($method)
|
||||
{
|
||||
$this->method = $method;
|
||||
}
|
||||
|
||||
public function getProtocol()
|
||||
{
|
||||
return $this->protocolType;
|
||||
}
|
||||
|
||||
public function setProtocol($protocol)
|
||||
{
|
||||
$this->protocolType = $protocol;
|
||||
}
|
||||
|
||||
public function getRegionId()
|
||||
{
|
||||
return $this->regionId;
|
||||
}
|
||||
public function setRegionId($region)
|
||||
{
|
||||
$this->regionId = $region;
|
||||
}
|
||||
|
||||
public function getContent()
|
||||
{
|
||||
return $this->content;
|
||||
}
|
||||
|
||||
public function setContent($content)
|
||||
{
|
||||
$this->content = $content;
|
||||
}
|
||||
|
||||
|
||||
public function addHeader($headerKey, $headerValue)
|
||||
{
|
||||
$this->headers[$headerKey] = $headerValue;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
44
金壶/ydyd_service/extend/Aliyun/core/AcsResponse.php
Normal file
44
金壶/ydyd_service/extend/Aliyun/core/AcsResponse.php
Normal file
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
class AcsResponse
|
||||
{
|
||||
private $code;
|
||||
private $message;
|
||||
|
||||
public function getCode()
|
||||
{
|
||||
return $this->code;
|
||||
}
|
||||
|
||||
public function setCode($code)
|
||||
{
|
||||
$this->code = $code;
|
||||
}
|
||||
|
||||
public function getMessage()
|
||||
{
|
||||
return $this->message;
|
||||
}
|
||||
|
||||
public function setMessage($message)
|
||||
{
|
||||
$this->message = $message;
|
||||
}
|
||||
}
|
||||
1
金壶/ydyd_service/extend/Aliyun/core/Auth/.pydio
Normal file
1
金壶/ydyd_service/extend/Aliyun/core/Auth/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
aa8a5356-b2ec-407f-8612-bcb4768e20b4
|
||||
87
金壶/ydyd_service/extend/Aliyun/core/Auth/Credential.php
Normal file
87
金壶/ydyd_service/extend/Aliyun/core/Auth/Credential.php
Normal file
@@ -0,0 +1,87 @@
|
||||
<?php
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
class Credential
|
||||
{
|
||||
private $dateTimeFormat = 'Y-m-d\TH:i:s\Z';
|
||||
private $refreshDate;
|
||||
private $expiredDate;
|
||||
private $accessKeyId;
|
||||
private $accessSecret;
|
||||
private $securityToken;
|
||||
|
||||
function __construct($accessKeyId, $accessSecret)
|
||||
{
|
||||
$this->accessKeyId = $accessKeyId;
|
||||
$this->accessSecret = $accessSecret;
|
||||
$this->refreshDate = date($this->dateTimeFormat);
|
||||
}
|
||||
|
||||
public function isExpired()
|
||||
{
|
||||
if($this->expiredDate == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if(strtotime($this->expiredDate)>date($this->dateTimeFormat))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public function getRefreshDate()
|
||||
{
|
||||
return $this->refreshDate;
|
||||
}
|
||||
|
||||
public function getExpiredDate()
|
||||
{
|
||||
return $this->expiredDate;
|
||||
}
|
||||
|
||||
public function setExpiredDate($expiredHours)
|
||||
{
|
||||
if($expiredHours>0)
|
||||
{
|
||||
return $this->expiredDate = date($this->dateTimeFormat, strtotime("+".$expiredHours." hour"));
|
||||
}
|
||||
}
|
||||
|
||||
public function getAccessKeyId()
|
||||
{
|
||||
return $this->accessKeyId;
|
||||
}
|
||||
|
||||
public function setAccessKeyId($accessKeyId)
|
||||
{
|
||||
$this->accessKeyId = $accessKeyId;
|
||||
}
|
||||
|
||||
public function getAccessSecret()
|
||||
{
|
||||
return $this->accessSecret;
|
||||
}
|
||||
|
||||
public function setAccessSecret($accessSecret)
|
||||
{
|
||||
$this->accessSecret = $accessSecret;
|
||||
}
|
||||
|
||||
}
|
||||
27
金壶/ydyd_service/extend/Aliyun/core/Auth/ISigner.php
Normal file
27
金壶/ydyd_service/extend/Aliyun/core/Auth/ISigner.php
Normal file
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
interface ISigner
|
||||
{
|
||||
public function getSignatureMethod();
|
||||
|
||||
public function getSignatureVersion();
|
||||
|
||||
public function signString($source, $accessSecret);
|
||||
}
|
||||
35
金壶/ydyd_service/extend/Aliyun/core/Auth/ShaHmac1Signer.php
Normal file
35
金壶/ydyd_service/extend/Aliyun/core/Auth/ShaHmac1Signer.php
Normal file
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
class ShaHmac1Signer implements ISigner
|
||||
{
|
||||
public function signString($source, $accessSecret)
|
||||
{
|
||||
return base64_encode(hash_hmac('sha1', $source, $accessSecret, true));
|
||||
}
|
||||
|
||||
public function getSignatureMethod() {
|
||||
return "HMAC-SHA1";
|
||||
}
|
||||
|
||||
public function getSignatureVersion() {
|
||||
return "1.0";
|
||||
}
|
||||
|
||||
}
|
||||
35
金壶/ydyd_service/extend/Aliyun/core/Auth/ShaHmac256Signer.php
Normal file
35
金壶/ydyd_service/extend/Aliyun/core/Auth/ShaHmac256Signer.php
Normal file
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
class ShaHmac256Signer implements ISigner
|
||||
{
|
||||
public function signString($source, $accessSecret)
|
||||
{
|
||||
return base64_encode(hash_hmac('sha256', $source, $accessSecret, true));
|
||||
}
|
||||
|
||||
public function getSignatureMethod() {
|
||||
return "HMAC-SHA256";
|
||||
}
|
||||
|
||||
public function getSignatureVersion() {
|
||||
return "1.0";
|
||||
}
|
||||
|
||||
}
|
||||
1
金壶/ydyd_service/extend/Aliyun/core/Autoloader/.pydio
Normal file
1
金壶/ydyd_service/extend/Aliyun/core/Autoloader/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
d82ab142-3106-4855-9676-f80c85cd5ed0
|
||||
50
金壶/ydyd_service/extend/Aliyun/core/Autoloader/Autoloader.php
Normal file
50
金壶/ydyd_service/extend/Aliyun/core/Autoloader/Autoloader.php
Normal file
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
spl_autoload_register("Autoloader::autoload");
|
||||
class Autoloader
|
||||
{
|
||||
private static $autoloadPathArray = array(
|
||||
"core",
|
||||
"core/Auth",
|
||||
"core/Http",
|
||||
"core/Profile",
|
||||
"core/Regions",
|
||||
"core/Exception"
|
||||
);
|
||||
|
||||
public static function autoload($className)
|
||||
{
|
||||
foreach (self::$autoloadPathArray as $path) {
|
||||
$file = dirname(dirname(__DIR__)).DIRECTORY_SEPARATOR.$path.DIRECTORY_SEPARATOR.$className.".php";
|
||||
$file = str_replace('\\', DIRECTORY_SEPARATOR, $file);
|
||||
if(is_file($file)){
|
||||
include_once $file;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static function addAutoloadPath($path)
|
||||
{
|
||||
array_push(self::$autoloadPathArray, $path);
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
47
金壶/ydyd_service/extend/Aliyun/core/Config.php
Normal file
47
金壶/ydyd_service/extend/Aliyun/core/Config.php
Normal file
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
include_once 'Autoloader/Autoloader.php';
|
||||
//Autoloader::addAutoloadPath("../core");
|
||||
include_once 'Regions/EndpointConfig.php';
|
||||
|
||||
//config sdk auto load path.
|
||||
//Autoloader::addAutoloadPath("aliyun-php-sdk-ecs");
|
||||
//Autoloader::addAutoloadPath("aliyun-php-sdk-batchcompute");
|
||||
//Autoloader::addAutoloadPath("aliyun-php-sdk-sts");
|
||||
//Autoloader::addAutoloadPath("aliyun-php-sdk-push");
|
||||
//Autoloader::addAutoloadPath("aliyun-php-sdk-ram");
|
||||
//Autoloader::addAutoloadPath("aliyun-php-sdk-ubsms");
|
||||
//Autoloader::addAutoloadPath("aliyun-php-sdk-ubsms-inner");
|
||||
//Autoloader::addAutoloadPath("aliyun-php-sdk-green");
|
||||
//Autoloader::addAutoloadPath("aliyun-php-sdk-dm");
|
||||
//Autoloader::addAutoloadPath("aliyun-php-sdk-iot");
|
||||
//Autoloader::addAutoloadPath("aliyun-php-sdk-jaq");
|
||||
//Autoloader::addAutoloadPath("aliyun-php-sdk-cs");
|
||||
//Autoloader::addAutoloadPath("aliyun-php-sdk-live");
|
||||
//Autoloader::addAutoloadPath("aliyun-php-sdk-vpc");
|
||||
//Autoloader::addAutoloadPath("aliyun-php-sdk-kms");
|
||||
//Autoloader::addAutoloadPath("aliyun-php-sdk-rds");
|
||||
|
||||
//Autoloader::addAutoloadPath("../slb");
|
||||
|
||||
//config http proxy
|
||||
define('ENABLE_HTTP_PROXY', FALSE);
|
||||
define('HTTP_PROXY_IP', '127.0.0.1');
|
||||
define('HTTP_PROXY_PORT', '8888');
|
||||
128
金壶/ydyd_service/extend/Aliyun/core/DefaultAcsClient.php
Normal file
128
金壶/ydyd_service/extend/Aliyun/core/DefaultAcsClient.php
Normal file
@@ -0,0 +1,128 @@
|
||||
<?php
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
class DefaultAcsClient implements IAcsClient
|
||||
{
|
||||
public $iClientProfile;
|
||||
|
||||
function __construct($iClientProfile)
|
||||
{
|
||||
$this->iClientProfile = $iClientProfile;
|
||||
}
|
||||
|
||||
public function getAcsResponse($request, $iSigner = null, $credential = null, $autoRetry = true, $maxRetryNumber = 3)
|
||||
{
|
||||
$httpResponse = $this->doAction($request, $iSigner, $credential, $autoRetry, $maxRetryNumber);
|
||||
$respObject = $this->parseAcsResponse($httpResponse->getBody(), $request->getAcceptFormat());
|
||||
if(false == $httpResponse->isSuccess())
|
||||
{
|
||||
$this->buildApiException($respObject, $httpResponse->getStatus());
|
||||
}
|
||||
return $respObject;
|
||||
}
|
||||
|
||||
public function doAction($request, $iSigner = null, $credential = null, $autoRetry = true, $maxRetryNumber = 3)
|
||||
{
|
||||
if(null == $this->iClientProfile && (null == $iSigner || null == $credential
|
||||
|| null == $request->getRegionId() || null == $request->getAcceptFormat()))
|
||||
{
|
||||
throw new ClientException("No active profile found.", "SDK.InvalidProfile");
|
||||
}
|
||||
if(null == $iSigner)
|
||||
{
|
||||
$iSigner = $this->iClientProfile->getSigner();
|
||||
}
|
||||
if(null == $credential)
|
||||
{
|
||||
$credential = $this->iClientProfile->getCredential();
|
||||
}
|
||||
$request = $this->prepareRequest($request);
|
||||
$domain = EndpointProvider::findProductDomain($request->getRegionId(), $request->getProduct());
|
||||
if(null == $domain)
|
||||
{
|
||||
throw new ClientException("Can not find endpoint to access.", "SDK.InvalidRegionId");
|
||||
}
|
||||
$requestUrl = $request->composeUrl($iSigner, $credential, $domain);
|
||||
if(count($request->getDomainParameter())>0){
|
||||
$httpResponse = HttpHelper::curl($requestUrl, $request->getMethod(), $request->getDomainParameter(), $request->getHeaders());
|
||||
} else {
|
||||
$httpResponse = HttpHelper::curl($requestUrl, $request->getMethod(),$request->getContent(), $request->getHeaders());
|
||||
}
|
||||
|
||||
$retryTimes = 1;
|
||||
while (500 <= $httpResponse->getStatus() && $autoRetry && $retryTimes < $maxRetryNumber) {
|
||||
$requestUrl = $request->composeUrl($iSigner, $credential,$domain);
|
||||
|
||||
if(count($request->getDomainParameter())>0){
|
||||
$httpResponse = HttpHelper::curl($requestUrl, $request->getDomainParameter(), $request->getHeaders());
|
||||
} else {
|
||||
$httpResponse = HttpHelper::curl($requestUrl, $request->getMethod(), $request->getContent(), $request->getHeaders());
|
||||
}
|
||||
$retryTimes ++;
|
||||
}
|
||||
return $httpResponse;
|
||||
}
|
||||
|
||||
private function prepareRequest($request)
|
||||
{
|
||||
if(null == $request->getRegionId())
|
||||
{
|
||||
$request->setRegionId($this->iClientProfile->getRegionId());
|
||||
}
|
||||
if(null == $request->getAcceptFormat())
|
||||
{
|
||||
$request->setAcceptFormat($this->iClientProfile->getFormat());
|
||||
}
|
||||
if(null == $request->getMethod())
|
||||
{
|
||||
$request->setMethod("GET");
|
||||
}
|
||||
return $request;
|
||||
}
|
||||
|
||||
|
||||
private function buildApiException($respObject, $httpStatus)
|
||||
{
|
||||
if(500 <= $httpStatus)
|
||||
{
|
||||
throw new ServerException($respObject->Message, $respObject->Code);
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new ClientException($respObject->Message, $respObject->Code);
|
||||
}
|
||||
}
|
||||
|
||||
private function parseAcsResponse($body, $format)
|
||||
{
|
||||
if ("JSON" == $format)
|
||||
{
|
||||
$respObject = json_decode($body);
|
||||
}
|
||||
else if("XML" == $format)
|
||||
{
|
||||
$respObject = @simplexml_load_string($body);
|
||||
}
|
||||
else if("RAW" == $format)
|
||||
{
|
||||
$respObject = $body;
|
||||
}
|
||||
return $respObject;
|
||||
}
|
||||
}
|
||||
1
金壶/ydyd_service/extend/Aliyun/core/Exception/.pydio
Normal file
1
金壶/ydyd_service/extend/Aliyun/core/Exception/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
d530e5f6-33ac-4ad4-88a0-9af9da801c3e
|
||||
@@ -0,0 +1,65 @@
|
||||
<?php
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
class ClientException extends Exception
|
||||
{
|
||||
function __construct($errorMessage, $errorCode)
|
||||
{
|
||||
parent::__construct($errorMessage);
|
||||
$this->errorMessage = $errorMessage;
|
||||
$this->errorCode = $errorCode;
|
||||
$this->setErrorType("Client");
|
||||
}
|
||||
|
||||
private $errorCode;
|
||||
private $errorMessage;
|
||||
private $errorType;
|
||||
|
||||
public function getErrorCode()
|
||||
{
|
||||
return $this->errorCode;
|
||||
}
|
||||
|
||||
public function setErrorCode($errorCode)
|
||||
{
|
||||
$this->errorCode = $errorCode;
|
||||
}
|
||||
|
||||
public function getErrorMessage()
|
||||
{
|
||||
return $this->errorMessage;
|
||||
}
|
||||
|
||||
public function setErrorMessage($errorMessage)
|
||||
{
|
||||
$this->errorMessage = $errorMessage;
|
||||
}
|
||||
|
||||
public function getErrorType()
|
||||
{
|
||||
return $this->errorType;
|
||||
}
|
||||
|
||||
public function setErrorType($errorType)
|
||||
{
|
||||
$this->errorType = $errorType;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
class ServerException extends ClientException
|
||||
{
|
||||
|
||||
function __construct($errorMessage, $errorCode)
|
||||
{
|
||||
parent::__construct($errorMessage, $errorCode);
|
||||
$this->setErrorType("Server");
|
||||
}
|
||||
|
||||
}
|
||||
1
金壶/ydyd_service/extend/Aliyun/core/Http/.pydio
Normal file
1
金壶/ydyd_service/extend/Aliyun/core/Http/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
f58b4829-8de0-47ea-86b8-0079f06bdead
|
||||
83
金壶/ydyd_service/extend/Aliyun/core/Http/HttpHelper.php
Normal file
83
金壶/ydyd_service/extend/Aliyun/core/Http/HttpHelper.php
Normal file
@@ -0,0 +1,83 @@
|
||||
<?php
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
class HttpHelper
|
||||
{
|
||||
public static $connectTimeout = 30000;//30 second
|
||||
public static $readTimeout = 80000;//80 second
|
||||
|
||||
public static function curl($url, $httpMethod = "GET", $postFields = null,$headers = null)
|
||||
{
|
||||
$ch = curl_init();
|
||||
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $httpMethod);
|
||||
if(ENABLE_HTTP_PROXY) {
|
||||
curl_setopt($ch, CURLOPT_PROXYAUTH, CURLAUTH_BASIC);
|
||||
curl_setopt($ch, CURLOPT_PROXY, HTTP_PROXY_IP);
|
||||
curl_setopt($ch, CURLOPT_PROXYPORT, HTTP_PROXY_PORT);
|
||||
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
|
||||
}
|
||||
curl_setopt($ch, CURLOPT_URL, $url);
|
||||
curl_setopt($ch, CURLOPT_FAILONERROR, false);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, is_array($postFields) ? self::getPostHttpBody($postFields) : $postFields);
|
||||
|
||||
if (self::$readTimeout) {
|
||||
curl_setopt($ch, CURLOPT_TIMEOUT, self::$readTimeout);
|
||||
}
|
||||
if (self::$connectTimeout) {
|
||||
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, self::$connectTimeout);
|
||||
}
|
||||
//https request
|
||||
if(strlen($url) > 5 && strtolower(substr($url,0,5)) == "https" ) {
|
||||
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
|
||||
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
|
||||
}
|
||||
if (is_array($headers) && 0 < count($headers))
|
||||
{
|
||||
$httpHeaders =self::getHttpHearders($headers);
|
||||
curl_setopt($ch,CURLOPT_HTTPHEADER,$httpHeaders);
|
||||
}
|
||||
$httpResponse = new HttpResponse();
|
||||
$httpResponse->setBody(curl_exec($ch));
|
||||
$httpResponse->setStatus(curl_getinfo($ch, CURLINFO_HTTP_CODE));
|
||||
if (curl_errno($ch))
|
||||
{
|
||||
throw new ClientException("Speicified endpoint or uri is not valid.".curl_error($ch), "SDK.ServerUnreachable");
|
||||
}
|
||||
curl_close($ch);
|
||||
return $httpResponse;
|
||||
}
|
||||
static function getPostHttpBody($postFildes){
|
||||
$content = "";
|
||||
foreach ($postFildes as $apiParamKey => $apiParamValue)
|
||||
{
|
||||
$content .= "$apiParamKey=" . urlencode($apiParamValue) . "&";
|
||||
}
|
||||
return substr($content, 0, -1);
|
||||
}
|
||||
static function getHttpHearders($headers)
|
||||
{
|
||||
$httpHeader = array();
|
||||
foreach ($headers as $key => $value)
|
||||
{
|
||||
array_push($httpHeader, $key.":".$value);
|
||||
}
|
||||
return $httpHeader;
|
||||
}
|
||||
}
|
||||
53
金壶/ydyd_service/extend/Aliyun/core/Http/HttpResponse.php
Normal file
53
金壶/ydyd_service/extend/Aliyun/core/Http/HttpResponse.php
Normal file
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
class HttpResponse
|
||||
{
|
||||
private $body;
|
||||
private $status;
|
||||
|
||||
public function getBody()
|
||||
{
|
||||
return $this->body;
|
||||
}
|
||||
|
||||
public function setBody($body)
|
||||
{
|
||||
$this->body = $body;
|
||||
}
|
||||
|
||||
public function getStatus()
|
||||
{
|
||||
return $this->status;
|
||||
}
|
||||
|
||||
public function setStatus($status)
|
||||
{
|
||||
$this->status = $status;
|
||||
}
|
||||
|
||||
public function isSuccess()
|
||||
{
|
||||
if(200 <= $this->status && 300 > $this->status)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
23
金壶/ydyd_service/extend/Aliyun/core/IAcsClient.php
Normal file
23
金壶/ydyd_service/extend/Aliyun/core/IAcsClient.php
Normal file
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
interface IAcsClient
|
||||
{
|
||||
public function doAction($requst);
|
||||
}
|
||||
1
金壶/ydyd_service/extend/Aliyun/core/Profile/.pydio
Normal file
1
金壶/ydyd_service/extend/Aliyun/core/Profile/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
69128600-8913-49cb-81a6-ecef5246a658
|
||||
148
金壶/ydyd_service/extend/Aliyun/core/Profile/DefaultProfile.php
Normal file
148
金壶/ydyd_service/extend/Aliyun/core/Profile/DefaultProfile.php
Normal file
@@ -0,0 +1,148 @@
|
||||
<?php
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
// include_once 'IClientProfile.php';
|
||||
|
||||
class DefaultProfile implements IClientProfile
|
||||
{
|
||||
private static $profile;
|
||||
private static $endpoints;
|
||||
private static $credential;
|
||||
private static $regionId;
|
||||
private static $acceptFormat;
|
||||
|
||||
private static $isigner;
|
||||
private static $iCredential;
|
||||
|
||||
private function __construct($regionId,$credential)
|
||||
{
|
||||
self::$regionId = $regionId;
|
||||
self::$credential = $credential;
|
||||
}
|
||||
|
||||
public static function getProfile($regionId, $accessKeyId, $accessSecret)
|
||||
{
|
||||
$credential =new Credential($accessKeyId, $accessSecret);
|
||||
self::$profile = new DefaultProfile($regionId, $credential);
|
||||
return self::$profile;
|
||||
}
|
||||
|
||||
public function getSigner()
|
||||
{
|
||||
if(null == self::$isigner)
|
||||
{
|
||||
self::$isigner = new ShaHmac1Signer();
|
||||
}
|
||||
return self::$isigner;
|
||||
}
|
||||
|
||||
public function getRegionId()
|
||||
{
|
||||
return self::$regionId;
|
||||
}
|
||||
|
||||
public function getFormat()
|
||||
{
|
||||
return self::$acceptFormat;
|
||||
}
|
||||
|
||||
public function getCredential()
|
||||
{
|
||||
if(null == self::$credential && null != self::$iCredential)
|
||||
{
|
||||
self::$credential = self::$iCredential;
|
||||
}
|
||||
return self::$credential;
|
||||
}
|
||||
|
||||
public static function getEndpoints()
|
||||
{
|
||||
if(null == self::$endpoints)
|
||||
{
|
||||
self::$endpoints = EndpointProvider::getEndpoints();
|
||||
}
|
||||
return self::$endpoints;
|
||||
}
|
||||
|
||||
public static function addEndpoint($endpointName, $regionId, $product, $domain)
|
||||
{
|
||||
if(null == self::$endpoints)
|
||||
{
|
||||
self::$endpoints = self::getEndpoints();
|
||||
}
|
||||
$endpoint = self::findEndpointByName($endpointName);
|
||||
if(null == $endpoint)
|
||||
{
|
||||
self::addEndpoint_($endpointName, $regionId, $product, $domain);
|
||||
}
|
||||
else
|
||||
{
|
||||
self::updateEndpoint($regionId, $product, $domain, $endpoint);
|
||||
}
|
||||
}
|
||||
|
||||
public static function findEndpointByName($endpointName)
|
||||
{
|
||||
foreach (self::$endpoints as $key => $endpoint)
|
||||
{
|
||||
if($endpoint->getName() == $endpointName)
|
||||
{
|
||||
return $endpoint;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static function addEndpoint_($endpointName,$regionId, $product, $domain)
|
||||
{
|
||||
$regionIds = array($regionId);
|
||||
$productsDomains = array(new ProductDomain($product, $domain));
|
||||
$endpoint = new Endpoint($endpointName, $regionIds, $productDomains);
|
||||
array_push(self::$endpoints, $endpoint);
|
||||
}
|
||||
|
||||
private static function updateEndpoint($regionId, $product, $domain, $endpoint)
|
||||
{
|
||||
$regionIds = $endpoint->getRegionIds();
|
||||
if(!in_array($regionId,$regionIds))
|
||||
{
|
||||
array_push($regionIds, $regionId);
|
||||
$endpoint->setRegionIds($regionIds);
|
||||
}
|
||||
|
||||
$productDomains = $endpoint->getProductDomains();
|
||||
if(null == self::findProductDomain($productDomains, $product, $domain))
|
||||
{
|
||||
array_push($productDomains, new ProductDomain($product, $domain));
|
||||
}
|
||||
$endpoint->setProductDomains($productDomains);
|
||||
}
|
||||
|
||||
private static function findProductDomain($productDomains, $product, $domain)
|
||||
{
|
||||
foreach ($productDomains as $key => $productDomain)
|
||||
{
|
||||
if($productDomain->getProductName() == $product && $productDomain->getDomainName() == $domain)
|
||||
{
|
||||
return $productDomain;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
interface IClientProfile
|
||||
{
|
||||
public function getSigner();
|
||||
|
||||
public function getRegionId();
|
||||
|
||||
public function getFormat();
|
||||
|
||||
public function getCredential();
|
||||
}
|
||||
1
金壶/ydyd_service/extend/Aliyun/core/Regions/.pydio
Normal file
1
金壶/ydyd_service/extend/Aliyun/core/Regions/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
1e6f8cfa-38ee-4789-890d-ab787da78fd4
|
||||
62
金壶/ydyd_service/extend/Aliyun/core/Regions/Endpoint.php
Normal file
62
金壶/ydyd_service/extend/Aliyun/core/Regions/Endpoint.php
Normal file
@@ -0,0 +1,62 @@
|
||||
<?php
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
class Endpoint
|
||||
{
|
||||
private $name;
|
||||
private $regionIds;
|
||||
private $productDomains;
|
||||
|
||||
function __construct($name, $regionIds, $productDomains)
|
||||
{
|
||||
$this->name = $name;
|
||||
$this->regionIds = $regionIds;
|
||||
$this->productDomains = $productDomains;
|
||||
}
|
||||
|
||||
public function getName()
|
||||
{
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
public function setName($name)
|
||||
{
|
||||
$this->name = $name;
|
||||
}
|
||||
|
||||
public function getRegionIds()
|
||||
{
|
||||
return $this->regionIds;
|
||||
}
|
||||
|
||||
public function setRegionIds($regionIds)
|
||||
{
|
||||
$this->regionIds = $regionIds;
|
||||
}
|
||||
|
||||
public function getProductDomains()
|
||||
{
|
||||
return $this->productDomains;
|
||||
}
|
||||
|
||||
public function setProductDomains($productDomains)
|
||||
{
|
||||
$this->productDomains = $productDomains;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
<?php
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
// include_once 'ProductDomain.php';
|
||||
// include_once 'Endpoint.php';
|
||||
// include_once 'EndpointProvider.php';
|
||||
|
||||
$endpoint_filename = dirname(__FILE__) . DIRECTORY_SEPARATOR . "endpoints.xml";
|
||||
$xml = simplexml_load_string(file_get_contents($endpoint_filename));
|
||||
$json = json_encode($xml);
|
||||
$json_array = json_decode($json, TRUE);
|
||||
|
||||
$endpoints = array();
|
||||
|
||||
foreach ($json_array["Endpoint"] as $json_endpoint) {
|
||||
# pre-process RegionId & Product
|
||||
if (!array_key_exists("RegionId", $json_endpoint["RegionIds"])) {
|
||||
$region_ids = array();
|
||||
} else {
|
||||
$json_region_ids = $json_endpoint['RegionIds']['RegionId'];
|
||||
if (!is_array($json_region_ids)) {
|
||||
$region_ids = array($json_region_ids);
|
||||
} else {
|
||||
$region_ids = $json_region_ids;
|
||||
}
|
||||
}
|
||||
|
||||
if (!array_key_exists("Product", $json_endpoint["Products"])) {
|
||||
$products = array();
|
||||
|
||||
} else {
|
||||
$json_products = $json_endpoint["Products"]["Product"];
|
||||
|
||||
if (array() === $json_products or !is_array($json_products)) {
|
||||
$products = array();
|
||||
} else if (array_keys($json_products) !== range(0, count($json_products) - 1)) {
|
||||
# array is not sequential
|
||||
$products = array($json_products);
|
||||
} else {
|
||||
$products = $json_products;
|
||||
}
|
||||
}
|
||||
|
||||
$product_domains = array();
|
||||
foreach ($products as $product) {
|
||||
$product_domain = new ProductDomain($product['ProductName'], $product['DomainName']);
|
||||
array_push($product_domains, $product_domain);
|
||||
}
|
||||
$endpoint = new Endpoint($region_ids[0], $region_ids, $product_domains);
|
||||
array_push($endpoints, $endpoint);
|
||||
}
|
||||
|
||||
EndpointProvider::setEndpoints($endpoints);
|
||||
@@ -0,0 +1,67 @@
|
||||
<?php
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
class EndpointProvider
|
||||
{
|
||||
private static $endpoints;
|
||||
|
||||
public static function findProductDomain($regionId, $product)
|
||||
{
|
||||
if(null == $regionId || null == $product || null == self::$endpoints)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
foreach (self::$endpoints as $key => $endpoint)
|
||||
{
|
||||
if(in_array($regionId, $endpoint->getRegionIds()))
|
||||
{
|
||||
return self::findProductDomainByProduct($endpoint->getProductDomains(), $product);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private static function findProductDomainByProduct($productDomains, $product)
|
||||
{
|
||||
if(null == $productDomains)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
foreach ($productDomains as $key => $productDomain)
|
||||
{
|
||||
if($product == $productDomain->getProductName())
|
||||
{
|
||||
return $productDomain->getDomainName();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
public static function getEndpoints()
|
||||
{
|
||||
return self::$endpoints;
|
||||
}
|
||||
|
||||
public static function setEndpoints($endpoints)
|
||||
{
|
||||
self::$endpoints = $endpoints;
|
||||
}
|
||||
|
||||
}
|
||||
43
金壶/ydyd_service/extend/Aliyun/core/Regions/ProductDomain.php
Normal file
43
金壶/ydyd_service/extend/Aliyun/core/Regions/ProductDomain.php
Normal file
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
class ProductDomain
|
||||
{
|
||||
private $productName;
|
||||
private $domainName;
|
||||
|
||||
function __construct($product, $domain) {
|
||||
$this->productName = $product;
|
||||
$this->domainName = $domain;
|
||||
}
|
||||
|
||||
public function getProductName() {
|
||||
return $this->productName;
|
||||
}
|
||||
public function setProductName($productName) {
|
||||
$this->productName = $productName;
|
||||
}
|
||||
public function getDomainName() {
|
||||
return $this->domainName;
|
||||
}
|
||||
public function setDomainName($domainName) {
|
||||
$this->domainName = $domainName;
|
||||
}
|
||||
|
||||
}
|
||||
1351
金壶/ydyd_service/extend/Aliyun/core/Regions/endpoints.xml
Normal file
1351
金壶/ydyd_service/extend/Aliyun/core/Regions/endpoints.xml
Normal file
File diff suppressed because it is too large
Load Diff
223
金壶/ydyd_service/extend/Aliyun/core/RoaAcsRequest.php
Normal file
223
金壶/ydyd_service/extend/Aliyun/core/RoaAcsRequest.php
Normal file
@@ -0,0 +1,223 @@
|
||||
<?php
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
abstract class RoaAcsRequest extends AcsRequest
|
||||
{
|
||||
protected $uriPattern;
|
||||
private $pathParameters = array();
|
||||
private $domainParameters = array();
|
||||
private $dateTimeFormat ="D, d M Y H:i:s \G\M\T";
|
||||
private static $headerSeparator = "\n";
|
||||
private static $querySeprator = "&";
|
||||
|
||||
function __construct($product, $version, $actionName)
|
||||
{
|
||||
parent::__construct($product, $version, $actionName);
|
||||
$this->setVersion($version);
|
||||
$this->initialize();
|
||||
}
|
||||
|
||||
private function initialize()
|
||||
{
|
||||
$this->setMethod("RAW");
|
||||
}
|
||||
|
||||
public function composeUrl($iSigner, $credential, $domain)
|
||||
{
|
||||
$this->prepareHeader($iSigner);
|
||||
|
||||
$signString = $this->getMethod().self::$headerSeparator;
|
||||
if(isset($this->headers["Accept"]))
|
||||
{
|
||||
$signString = $signString.$this->headers["Accept"];
|
||||
}
|
||||
$signString = $signString.self::$headerSeparator;
|
||||
|
||||
if(isset($this->headers["Content-MD5"]))
|
||||
{
|
||||
$signString = $signString.$this->headers["Content-MD5"];
|
||||
}
|
||||
$signString = $signString.self::$headerSeparator;
|
||||
|
||||
if(isset($this->headers["Content-Type"]))
|
||||
{
|
||||
$signString = $signString.$this->headers["Content-Type"];
|
||||
}
|
||||
$signString = $signString.self::$headerSeparator;
|
||||
|
||||
if(isset($this->headers["Date"]))
|
||||
{
|
||||
$signString = $signString.$this->headers["Date"];
|
||||
}
|
||||
$signString = $signString.self::$headerSeparator;
|
||||
|
||||
$uri = $this->replaceOccupiedParameters();
|
||||
$signString = $signString.$this->buildCanonicalHeaders();
|
||||
$queryString = $this->buildQueryString($uri);
|
||||
$signString .= $queryString;
|
||||
$this->headers["Authorization"] = "acs ".$credential->getAccessKeyId().":"
|
||||
.$iSigner->signString($signString, $credential->getAccessSecret());
|
||||
$requestUrl = $this->getProtocol()."://".$domain.$queryString;
|
||||
return $requestUrl;
|
||||
}
|
||||
|
||||
private function prepareHeader($iSigner)
|
||||
{
|
||||
date_default_timezone_set("GMT");
|
||||
$this->headers["Date"] = date($this->dateTimeFormat);
|
||||
if(null == $this->acceptFormat)
|
||||
{
|
||||
$this->acceptFormat = "RAW";
|
||||
}
|
||||
$this->headers["Accept"] = $this->formatToAccept($this->getAcceptFormat());
|
||||
$this->headers["x-acs-signature-method"] = $iSigner->getSignatureMethod();
|
||||
$this->headers["x-acs-signature-version"] = $iSigner->getSignatureVersion();
|
||||
$this->headers["x-acs-region-id"] = $this->regionId;
|
||||
$content = $this->getDomainParameter();
|
||||
if ($content != null) {
|
||||
$this->headers["Content-MD5"] = base64_encode(md5(json_encode($content),true));
|
||||
}
|
||||
$this->headers["Content-Type"] = "application/octet-stream;charset=utf-8";
|
||||
}
|
||||
|
||||
private function replaceOccupiedParameters()
|
||||
{
|
||||
$result = $this->uriPattern;
|
||||
foreach ($this->pathParameters as $pathParameterKey => $apiParameterValue)
|
||||
{
|
||||
$target = "[".$pathParameterKey."]";
|
||||
$result = str_replace($target,$apiParameterValue,$result);
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
private function buildCanonicalHeaders()
|
||||
{
|
||||
$sortMap = array();
|
||||
foreach ($this->headers as $headerKey => $headerValue)
|
||||
{
|
||||
$key = strtolower($headerKey);
|
||||
if(strpos($key, "x-acs-") === 0)
|
||||
{
|
||||
$sortMap[$key] = $headerValue;
|
||||
}
|
||||
}
|
||||
ksort($sortMap);
|
||||
$headerString = "";
|
||||
foreach ($sortMap as $sortMapKey => $sortMapValue)
|
||||
{
|
||||
$headerString = $headerString.$sortMapKey.":".$sortMapValue.self::$headerSeparator;
|
||||
}
|
||||
return $headerString;
|
||||
}
|
||||
|
||||
private function splitSubResource($uri)
|
||||
{
|
||||
$queIndex = strpos($uri, "?");
|
||||
$uriParts = array();
|
||||
if(null != $queIndex)
|
||||
{
|
||||
array_push($uriParts, substr($uri,0,$queIndex));
|
||||
array_push($uriParts, substr($uri,$queIndex+1));
|
||||
}
|
||||
else
|
||||
{
|
||||
array_push($uriParts,$uri);
|
||||
}
|
||||
return $uriParts;
|
||||
}
|
||||
|
||||
private function buildQueryString($uri)
|
||||
{
|
||||
$uriParts = $this->splitSubResource($uri);
|
||||
$sortMap = $this->queryParameters;
|
||||
if(isset($uriParts[1]))
|
||||
{
|
||||
$sortMap[$uriParts[1]] = null;
|
||||
}
|
||||
$queryString = $uriParts[0];
|
||||
if(count($uriParts))
|
||||
{
|
||||
$queryString = $queryString."?";
|
||||
}
|
||||
ksort($sortMap);
|
||||
foreach ($sortMap as $sortMapKey => $sortMapValue)
|
||||
{
|
||||
$queryString = $queryString.$sortMapKey;
|
||||
if(isset($sortMapValue))
|
||||
{
|
||||
$queryString = $queryString."=".$sortMapValue;
|
||||
}
|
||||
$queryString = $queryString.$querySeprator;
|
||||
}
|
||||
if(null==count($sortMap))
|
||||
{
|
||||
$queryString = substr($queryString, 0, strlen($queryString)-1);
|
||||
}
|
||||
return $queryString;
|
||||
}
|
||||
|
||||
private function formatToAccept($acceptFormat)
|
||||
{
|
||||
if($acceptFormat == "JSON")
|
||||
{
|
||||
return "application/json";
|
||||
}
|
||||
elseif ($acceptFormat == "XML") {
|
||||
return "application/xml";
|
||||
}
|
||||
return "application/octet-stream";
|
||||
}
|
||||
|
||||
public function getPathParameters()
|
||||
{
|
||||
return $this->pathParameters;
|
||||
}
|
||||
|
||||
public function putPathParameter($name, $value)
|
||||
{
|
||||
$this->pathParameters[$name] = $value;
|
||||
}
|
||||
|
||||
public function getDomainParameter()
|
||||
{
|
||||
return $this->domainParameters;
|
||||
}
|
||||
|
||||
public function putDomainParameters($name, $value)
|
||||
{
|
||||
$this->domainParameters[$name] = $value;
|
||||
}
|
||||
|
||||
public function getUriPattern()
|
||||
{
|
||||
return $this->uriPattern;
|
||||
}
|
||||
|
||||
public function setUriPattern($uriPattern)
|
||||
{
|
||||
return $this->uriPattern = $uriPattern;
|
||||
}
|
||||
|
||||
public function setVersion($version)
|
||||
{
|
||||
$this->version = $version;
|
||||
$this->headers["x-acs-version"] = $version;
|
||||
}
|
||||
}
|
||||
104
金壶/ydyd_service/extend/Aliyun/core/RpcAcsRequest.php
Normal file
104
金壶/ydyd_service/extend/Aliyun/core/RpcAcsRequest.php
Normal file
@@ -0,0 +1,104 @@
|
||||
<?php
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
abstract class RpcAcsRequest extends AcsRequest
|
||||
{
|
||||
private $dateTimeFormat = 'Y-m-d\TH:i:s\Z';
|
||||
private $domainParameters = array();
|
||||
|
||||
function __construct($product, $version, $actionName)
|
||||
{
|
||||
parent::__construct($product, $version, $actionName);
|
||||
$this->initialize();
|
||||
}
|
||||
|
||||
private function initialize()
|
||||
{
|
||||
$this->setMethod("GET");
|
||||
$this->setAcceptFormat("JSON");
|
||||
}
|
||||
|
||||
public function composeUrl($iSigner, $credential, $domain)
|
||||
{
|
||||
$apiParams = parent::getQueryParameters();
|
||||
$apiParams["RegionId"] = $this->getRegionId();
|
||||
$apiParams["AccessKeyId"] = $credential->getAccessKeyId();
|
||||
$apiParams["Format"] = $this->getAcceptFormat();
|
||||
$apiParams["SignatureMethod"] = $iSigner->getSignatureMethod();
|
||||
$apiParams["SignatureVersion"] = $iSigner->getSignatureVersion();
|
||||
$apiParams["SignatureNonce"] = uniqid();
|
||||
date_default_timezone_set("GMT");
|
||||
$apiParams["Timestamp"] = date($this->dateTimeFormat);
|
||||
$apiParams["Action"] = $this->getActionName();
|
||||
$apiParams["Version"] = $this->getVersion();
|
||||
$apiParams["Signature"] = $this->computeSignature($apiParams, $credential->getAccessSecret(), $iSigner);
|
||||
if(parent::getMethod() == "POST") {
|
||||
|
||||
$requestUrl = $this->getProtocol()."://". $domain . "/";
|
||||
foreach ($apiParams as $apiParamKey => $apiParamValue)
|
||||
{
|
||||
$this->putDomainParameters($apiParamKey,$apiParamValue);
|
||||
}
|
||||
return $requestUrl;
|
||||
}
|
||||
else {
|
||||
$requestUrl = $this->getProtocol()."://". $domain . "/?";
|
||||
|
||||
foreach ($apiParams as $apiParamKey => $apiParamValue)
|
||||
{
|
||||
$requestUrl .= "$apiParamKey=" . urlencode($apiParamValue) . "&";
|
||||
}
|
||||
return substr($requestUrl, 0, -1);
|
||||
}
|
||||
}
|
||||
|
||||
private function computeSignature($parameters, $accessKeySecret, $iSigner)
|
||||
{
|
||||
ksort($parameters);
|
||||
$canonicalizedQueryString = '';
|
||||
foreach($parameters as $key => $value)
|
||||
{
|
||||
$canonicalizedQueryString .= '&' . $this->percentEncode($key). '=' . $this->percentEncode($value);
|
||||
}
|
||||
$stringToSign = parent::getMethod().'&%2F&' . $this->percentencode(substr($canonicalizedQueryString, 1));
|
||||
$signature = $iSigner->signString($stringToSign, $accessKeySecret."&");
|
||||
|
||||
return $signature;
|
||||
}
|
||||
|
||||
protected function percentEncode($str)
|
||||
{
|
||||
$res = urlencode($str);
|
||||
$res = preg_replace('/\+/', '%20', $res);
|
||||
$res = preg_replace('/\*/', '%2A', $res);
|
||||
$res = preg_replace('/%7E/', '~', $res);
|
||||
return $res;
|
||||
}
|
||||
|
||||
public function getDomainParameter()
|
||||
{
|
||||
return $this->domainParameters;
|
||||
}
|
||||
|
||||
public function putDomainParameters($name, $value)
|
||||
{
|
||||
$this->domainParameters[$name] = $value;
|
||||
}
|
||||
|
||||
}
|
||||
1
金壶/ydyd_service/extend/Aliyun/core/UnitTest/.pydio
Normal file
1
金壶/ydyd_service/extend/Aliyun/core/UnitTest/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
f2de2b1e-8fef-4ce9-84a3-2683187439c1
|
||||
1
金壶/ydyd_service/extend/Aliyun/core/UnitTest/Auth/.pydio
Normal file
1
金壶/ydyd_service/extend/Aliyun/core/UnitTest/Auth/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
e314f297-05cf-4d11-a71a-df84dda8c805
|
||||
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
include_once '../../Config.php';
|
||||
class CredentialTest extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
public function testCredential()
|
||||
{
|
||||
$credential = new Credential("accessKeyId", "accessSecret");
|
||||
$this->assertEquals("accessKeyId",$credential->getAccessKeyId());
|
||||
$this->assertEquals("accessSecret",$credential->getAccessSecret());
|
||||
$this->assertNotNull($credential->getRefreshDate());
|
||||
|
||||
$dateNow = date("Y-m-d\TH:i:s\Z");
|
||||
$credential->setExpiredDate(1);
|
||||
$this->assertNotNull($credential->getExpiredDate());
|
||||
$this->assertTrue($credential->getExpiredDate() > $dateNow);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
include_once '../../Config.php';
|
||||
class ShaHmac1SignerTest extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
public function testShaHmac1Signer()
|
||||
{
|
||||
$signer = new ShaHmac1Signer();
|
||||
$this->assertEquals("33nmIV5/p6kG/64eLXNljJ5vw84=",$signer->signString("this is a ShaHmac1 test.", "accessSecret"));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
include_once '../../Config.php';
|
||||
|
||||
class ShaHmac256SignerTest extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
public function testShaHmac256Signer()
|
||||
{
|
||||
$signer = new ShaHmac256Signer();
|
||||
$this->assertEquals("TpF1lE/avV9EHGWGg9Vo/QTd2bLRwFCk9jjo56uRbCo=",
|
||||
$signer->signString("this is a ShaHmac256 test.", "accessSecret"));
|
||||
}
|
||||
}
|
||||
43
金壶/ydyd_service/extend/Aliyun/core/UnitTest/BaseTest.php
Normal file
43
金壶/ydyd_service/extend/Aliyun/core/UnitTest/BaseTest.php
Normal file
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
class BaseTest extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
public $client = null;
|
||||
function setUp()
|
||||
{
|
||||
$path = substr(dirname(__FILE__), 0,strripos(dirname(__FILE__),DIRECTORY_SEPARATOR)).DIRECTORY_SEPARATOR;
|
||||
include_once $path.'Config.php';
|
||||
include_once 'Ecs/Rquest/DescribeRegionsRequest.php';
|
||||
include_once 'BatchCompute/ListImagesRequest.php';
|
||||
|
||||
$iClientProfile = DefaultProfile::getProfile("cn-hangzhou", "AccessKey", "AccessSecret");
|
||||
$this->client = new DefaultAcsClient($iClientProfile);
|
||||
}
|
||||
|
||||
function getProperty($propertyKey)
|
||||
{
|
||||
$accessKey = "";
|
||||
$accessSecret = "";
|
||||
$iClientProfile = DefaultProfile::getProfile("cn-hangzhou", "AccessKey", "AccessSecret");
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
3492ab7d-5f8a-44e0-8fac-d35d1f635c74
|
||||
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
namespace UnitTest\BatchCompute\Request;
|
||||
|
||||
class ListImagesRequest extends \RoaAcsRequest
|
||||
{
|
||||
function __construct()
|
||||
{
|
||||
parent::__construct("BatchCompute", "2013-01-11", "ListImages");
|
||||
$this->setUriPattern("/images");
|
||||
$this->setMethod("GET");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
include_once 'BaseTest.php';
|
||||
use UnitTest\Ecs\Request as Ecs;
|
||||
use UnitTest\BatchCompute\Request as BC;
|
||||
|
||||
class DefaultAcsClientTest extends BaseTest
|
||||
{
|
||||
public function testDoActionRPC()
|
||||
{
|
||||
$request = new Ecs\DescribeRegionsRequest();
|
||||
$response = $this->client->doAction($request);
|
||||
|
||||
$this->assertNotNull($response->RequestId);
|
||||
$this->assertNotNull($response->Regions->Region[0]->LocalName);
|
||||
$this->assertNotNull($response->Regions->Region[0]->RegionId);
|
||||
}
|
||||
|
||||
public function testDoActionROA()
|
||||
{
|
||||
$request = new BC\ListImagesRequest();
|
||||
$response = $this->client->doAction($request);
|
||||
$this->assertNotNull($response);
|
||||
}
|
||||
}
|
||||
1
金壶/ydyd_service/extend/Aliyun/core/UnitTest/Ecs/.pydio
Normal file
1
金壶/ydyd_service/extend/Aliyun/core/UnitTest/Ecs/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
c0d1f3be-4822-45ab-9a7c-6d4ec7578458
|
||||
@@ -0,0 +1 @@
|
||||
769efb49-39d9-46e3-8814-c8fc951533c6
|
||||
@@ -0,0 +1,73 @@
|
||||
<?php
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
namespace UnitTest\Ecs\Request;
|
||||
|
||||
class DescribeRegionsRequest extends \RpcAcsRequest
|
||||
{
|
||||
function __construct()
|
||||
{
|
||||
parent::__construct("Ecs", "2014-05-26", "DescribeRegions");
|
||||
}
|
||||
|
||||
private $ownerId;
|
||||
|
||||
private $resourceOwnerAccount;
|
||||
|
||||
private $resourceOwnerId;
|
||||
|
||||
private $ownerAccount;
|
||||
|
||||
public function getOwnerId() {
|
||||
return $this->ownerId;
|
||||
}
|
||||
|
||||
public function setOwnerId($ownerId) {
|
||||
$this->ownerId = $ownerId;
|
||||
$this->queryParameters["OwnerId"]=$ownerId;
|
||||
}
|
||||
|
||||
public function getResourceOwnerAccount() {
|
||||
return $this->resourceOwnerAccount;
|
||||
}
|
||||
|
||||
public function setResourceOwnerAccount($resourceOwnerAccount) {
|
||||
$this->resourceOwnerAccount = $resourceOwnerAccount;
|
||||
$this->queryParameters["ResourceOwnerAccount"]=$resourceOwnerAccount;
|
||||
}
|
||||
|
||||
public function getResourceOwnerId() {
|
||||
return $this->resourceOwnerId;
|
||||
}
|
||||
|
||||
public function setResourceOwnerId($resourceOwnerId) {
|
||||
$this->resourceOwnerId = $resourceOwnerId;
|
||||
$this->queryParameters["ResourceOwnerId"]=$resourceOwnerId;
|
||||
}
|
||||
|
||||
public function getOwnerAccount() {
|
||||
return $this->ownerAccount;
|
||||
}
|
||||
|
||||
public function setOwnerAccount($ownerAccount) {
|
||||
$this->ownerAccount = $ownerAccount;
|
||||
$this->queryParameters["OwnerAccount"]=$ownerAccount;
|
||||
}
|
||||
|
||||
}
|
||||
1
金壶/ydyd_service/extend/Aliyun/core/UnitTest/Http/.pydio
Normal file
1
金壶/ydyd_service/extend/Aliyun/core/UnitTest/Http/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
9aa3ff16-d94c-4c92-ac71-8db190ef6534
|
||||
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
include_once '../BaseTest.php';
|
||||
class HttpHelperTest extends BaseTest
|
||||
{
|
||||
public function testCurl()
|
||||
{
|
||||
$httpResponse = HttpHelper::curl("ecs.aliyuncs.com");
|
||||
$this->assertEquals(400,$httpResponse->getStatus());
|
||||
$this->assertNotNull($httpResponse->getBody());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
18db19e1-46b1-41b4-abec-6808ad0ec6e5
|
||||
@@ -0,0 +1,65 @@
|
||||
<?php
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
include_once '../../Config.php';
|
||||
class DefaultProfileTest extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
public function testGetProfile()
|
||||
{
|
||||
$profile = DefaultProfile::getProfile("cn-hangzhou", "accessId", "accessSecret");
|
||||
$this->assertEquals("cn-hangzhou",$profile->getRegionId());
|
||||
$this->assertEquals("accessId",$profile->getCredential()->getAccessKeyId());
|
||||
$this->assertEquals("accessSecret",$profile->getCredential()->getAccessSecret());
|
||||
}
|
||||
|
||||
public function testAddEndpoint()
|
||||
{
|
||||
$profile = DefaultProfile::getProfile("cn-hangzhou", "accessId", "accessSecret");
|
||||
$profile->addEndpoint("cn-hangzhou", "cn-hangzhou", "TestProduct", "testproduct.aliyuncs.com");
|
||||
$endpoints = $profile->getEndpoints();
|
||||
foreach ($endpoints as $key => $endpoint)
|
||||
{
|
||||
if("cn-hangzhou" == $endpoint->getName())
|
||||
{
|
||||
$regionIds = $endpoint->getRegionIds();
|
||||
$this->assertContains("cn-hangzhou",$regionIds);
|
||||
|
||||
$productDomains= $endpoint->getProductDomains();
|
||||
$this->assertNotNull($productDomains);
|
||||
$productDomain = $this->getProductDomain($productDomains);
|
||||
$this->assertNotNull($productDomain);
|
||||
$this->assertEquals("TestProduct",$productDomain->getProductName());
|
||||
$this->assertEquals("testproduct.aliyuncs.com",$productDomain->getDomainName());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private function getProductDomain($productDomains)
|
||||
{
|
||||
foreach ($productDomains as $productDomain)
|
||||
{
|
||||
if($productDomain->getProductName() == "TestProduct")
|
||||
{
|
||||
return $productDomain;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
ea12d909-bdfc-4c5b-8cd0-2e1c9c7fda5d
|
||||
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
include_once '../../Config.php';
|
||||
|
||||
class EndpointProviderTest extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
|
||||
public function testFindProductDomain()
|
||||
{
|
||||
$this->assertEquals("ecs.aliyuncs.com",EndpointProvider::findProductDomain("cn-hangzhou", "Ecs"));
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user