90 lines
3.7 KiB
PHP
90 lines
3.7 KiB
PHP
<?php
|
||
|
||
$config=[
|
||
'access_key_id'=>'',
|
||
'access_key_secret'=>'',
|
||
'disk_id'=>'',
|
||
'region_id'=>'cn-hangzhou',
|
||
];
|
||
|
||
if ($_SERVER['REMOTE_ADDR']!='127.0.0.1')
|
||
die();
|
||
|
||
require 'vendor/autoload.php';
|
||
|
||
use AlibabaCloud\Client\AlibabaCloud;
|
||
use AlibabaCloud\Client\Exception\ClientException;
|
||
use AlibabaCloud\Client\Exception\ServerException;
|
||
|
||
// Download:https://github.com/aliyun/openapi-sdk-php
|
||
// Usage:https://github.com/aliyun/openapi-sdk-php/blob/master/README.md
|
||
|
||
AlibabaCloud::accessKeyClient($config['access_key_id'], $config['access_key_secret'])
|
||
// use STS Token
|
||
// AlibabaCloud::stsClient('<your-access-key-id>', '<your-access-key-secret>', '<your-sts-token>')
|
||
->regionId($config['region_id'])
|
||
->asDefaultClient();
|
||
|
||
try {
|
||
//查询快照
|
||
$result = AlibabaCloud::rpc()
|
||
->product('SWAS-OPEN')
|
||
// ->scheme('https') // https | http
|
||
->version('2020-06-01')
|
||
->action('ListSnapshots')
|
||
->method('POST')
|
||
->host("swas.{$config['region_id']}.aliyuncs.com")
|
||
->options([
|
||
'query' => [
|
||
'RegionId' => $config['region_id'],
|
||
],
|
||
])
|
||
->request();
|
||
//echo json_encode($result->toArray());
|
||
|
||
$name=(date("w")==1?'week-':'day-');
|
||
|
||
//删除多余快照
|
||
foreach($result['Snapshots'] as $i=>$snapshot){
|
||
if ($snapshot['SourceDiskId']==$config['disk_id'] && stripos($snapshot['SnapshotName'],$name)===0){
|
||
$result = AlibabaCloud::rpc()
|
||
->product('SWAS-OPEN')
|
||
// ->scheme('https') // https | http
|
||
->version('2020-06-01')
|
||
->action('DeleteSnapshot')
|
||
->method('POST')
|
||
->host("swas.{$config['region_id']}.aliyuncs.com")
|
||
->options([
|
||
'query' => [
|
||
'RegionId' => $config['region_id'],
|
||
'SnapshotId' => $snapshot['SnapshotId'],
|
||
],
|
||
])
|
||
->request();
|
||
|
||
}
|
||
}
|
||
|
||
//新建快照
|
||
$result = AlibabaCloud::rpc()
|
||
->product('SWAS-OPEN')
|
||
// ->scheme('https') // https | http
|
||
->version('2020-06-01')
|
||
->action('CreateSnapshot')
|
||
->method('POST')
|
||
->host("swas.{$config['region_id']}.aliyuncs.com")
|
||
->options([
|
||
'query' => [
|
||
'RegionId' => $config['region_id'],
|
||
'DiskId' => $config['disk_id'],
|
||
'SnapshotName' => $name.date("Y-m-d-H-i-s"),
|
||
],
|
||
])
|
||
->request();
|
||
//echo json_encode($result->toArray());
|
||
|
||
} catch (ClientException $e) {
|
||
echo $e->getErrorMessage() . PHP_EOL;
|
||
} catch (ServerException $e) {
|
||
echo $e->getErrorMessage() . PHP_EOL;
|
||
} |