<?php
function dogecloud_api($apiPath, $data = array(), $jsonMode = false) {
$accessKey = '26a84c12';
$secretKey = 'c698';
$body = $jsonMode ? json_encode($data) : http_build_query($data);
$signStr = $apiPath . "\n" . $body;
$sign = hash_hmac('sha1', $signStr, $secretKey);
$Authorization = "TOKEN " . $accessKey . ":" . $sign;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.dogecloud.com" . $apiPath);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
if(isset($data) && $data){
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: ' . ($jsonMode ? 'application/json' : 'application/x-www-form-urlencoded'),
'Authorization: ' . $Authorization
));
}
$ret = curl_exec($ch);
curl_close($ch);
return json_decode($ret, true);
}
$api = dogecloud_api('/auth/tmp_token.json', array(
"channel" => "OSS_FULL",
"scopes" => array("*")
), true);
if ($api && $api['code'] == 200) {
$credentials = $api['data']['Credentials'];
} else {
}
use Aws\S3\S3Client;
use Aws\Exception\AwsException;
$s3Client = new S3Client([
'region' => 'automatic',
'version' => '2006-03-01',
'endpoint' => 'https://cos.ap-guangzhou.myqcloud.com',
'credentials' => [
'key' => $credentials['accessKeyId'],
'secret' => $credentials['secretAccessKey'],
'token' => $credentials['sessionToken']
]
]);