生命周期管理

MSS允许用户对Bucket设置生命周期规则,以自动淘汰过期掉的文件,节省存储空间。针对不同前缀的文件,用户可以同时设置多条规则。一条规则包含:

  • 规则ID,用于标识一条规则,不能重复
  • 受影响的文件前缀,此规则只作用于符合前缀的文件
  • 过期时间,有三种指定方式:
    1. 指定距文件最后修改时间N天过期
    2. 指定日期创建前的文件过期,之后的不过期
    3. 指定在具体的某一天过期,即在那天之后符合前缀的文件将会过期,而不论文件的最后修改时间。不推荐使用。
  • 是否生效

上面的过期规则对用户上传的文件有效。用户通过uploadPart上传的分片,也可以设置过期规则。Multipart的Lifecycle和文件的类似,过期时间支持1、2两种,不支持3,生效是以init Multipart upload的时间。

设置生命周期

以下代码示例设置生命周期:

require '/path/to/mss.phar';

$accessKeyId = "<从MSS获得的AccessKeyId>";
$accessKyeSecret = "<从MSS获得的AccessKeySecret>";
$endpoint = "<选定的MSS数据中心访问域名,例如http://mtmss.com>";
$bucket = "<使用的bucketName,注意命名规范>";

$mssClient = Mss\S3\S3Client::factory([
        'endpoint' => $endpoint,
        'key'    => $accessKeyId,
        'secret' => $accessKeySecret,]);

$command = $mssClient->getCommand('PutBucketLifecycle', array(
        'Bucket' => $bucket,
        'Rules' => array(
            array(
                'ID' => 'foo-rule',
                'Status' => 'Enabled',
                'Prefix' => 'a',
                'Expiration' => array(
                    'Days' => 30
                )
            )
         )));
$result = $command->execute();
echo $result;

查看生命周期

以下代码查看bucket的生命周期:

require '/path/to/mss.phar';

$accessKeyId = "<从MSS获得的AccessKeyId>";
$accessKyeSecret = "<从MSS获得的AccessKeySecret>";
$endpoint = "<选定的MSS数据中心访问域名,例如http://mtmss.com>";
$bucket = "<使用的bucketName,注意命名规范>";

$mssClient = Mss\S3\S3Client::factory([
        'endpoint' => $endpoint,
        'key'    => $accessKeyId,
        'secret' => $accessKeySecret,]);

$result = $mssClient->getBucketLifecycle(array('Bucket'=>$bucket));
echo $result;

删除生命周期

以下代码删除bucket的生命周期:

require '/path/to/mss.phar';

$accessKeyId = "<从MSS获得的AccessKeyId>";
$accessKyeSecret = "<从MSS获得的AccessKeySecret>";
$endpoint = "<选定的MSS数据中心访问域名,例如http://mtmss.com>";
$bucket = "<使用的bucketName,注意命名规范>";

$mssClient = Mss\S3\S3Client::factory([
        'endpoint' => $endpoint,
        'key'    => $accessKeyId,
        'secret' => $accessKeySecret,]);

$result = $mssClient->deleteBucketLifecycle(array('Bucket'=>$bucket));
echo $result;