生命周期管理

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

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

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

设置生命周期规则

设置Bucket中Object的生命周期规则。Bucket 的拥有者可以通过 Put Bucket Lifecycle 来设置 Bucket 的 Lifecycle 配置。Lifecycle 开启后,MSS 将按照配置,定期自动删除与 Lifecycle 规则相匹配的 Object。
lifecycleConfig: 生命周期规则配置

var MSS = require('mos-mss');
var client = new MSS({
    accessKeyId: '<accessKeyId>',
    accessKeySecret: '<accessKeySecret>'
});

var result = client.putBucketLifecycle('Bucket', {
    lifecycleConfig: {
        Rule: [
            {
                Expiration: {
                    Days: 30
                },
                ID: 'STRING_VALUE',
                Filter: {
                    Prefix: ''
                }
            }
        ]
    }
});
result.then(function (res) {
    console.log(res);
});

查看生命周期规则

getBucketLifecycle 用于查看Bucket的Lifecycle配置。
注意:

  1. 只有 Bucket 的拥有者才能查看 Bucket 的 Lifecycle 配置,否则返回 403 Forbidden 错误,错误码:AccessDenied。
  2. 如果 Bucket 或 Lifecycle 不存在,返回 404 Not Found 错误,错误码:NoSuchBucket或NoSuchLifecycle。
var MSS = require('mos-mss');
var client = new MSS({
    accessKeyId: '<accessKeyId>',
    accessKeySecret: '<accessKeySecret>'
});

var result = client.getBucketLifecycle('Bucket');
result.then(function (res) {
    console.log(res);
});