在生命周期规则配置中,您可以指定生命周期规则生效的条件。生命周期规则可针对前缀(Prefix)或对象标签(Tag)生效,您也可以同时指定两者作为条件。

说明 Tag条件中,标签的Key和Value必须同时匹配。同一个规则中,若同时配置了前缀和多个对象标签,则对象需满足前缀,且同时匹配规则中所有对象标签,才视为适用于该规则。

生命周期规则中添加标签匹配规则

以下代码用于生命周期规则中添加标签匹配规则:

const OSS = require('ali-oss')

const client = new OSS({
  bucket: '<Your BucketName>',
  // region以杭州为例(oss-cn-hangzhou),其他region按实际情况填写。
  region: '<Your Region>',
  // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录RAM控制台创建RAM账号。
  accessKeyId: '<Your AccessKeyId>',
  accessKeySecret: '<Your AccessKeySecret>',
});

// 设置匹配的标签。
const tag = [{
  key: 'key1',
  value: 'value1'
},{
  key: 'key2',
  value: 'value2'
}]

client.putBucketLifecycle('<yourBucketName>', [{
  // 指定生命周期规则id为rule1。
  id: 'rule1', 
  // 将规则应用于前缀为“one”的object中。
  prefix: 'one', 
  status: 'Enabled',
  expiration: {
  // 指定生命周期规则在object最后更新过后60天过期。
    days: 60 
  },
  // 指定生命周期规则在object最后更新过后10天转为IA存储类型。
  transition: { 
    days: 10,
    StorageClass: 'IA'
  },
  tag
}]);

查看生命周期规则中匹配的标签信息

以下代码用于查看生命周期规则中匹配的标签信息:

const OSS = require('ali-oss')

const client = new OSS({
  bucket: '<Your BucketName>',
  // region以杭州为例(oss-cn-hangzhou),其他region按实际情况填写。
  region: '<Your Region>',
  // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录RAM控制台创建RAM账号。
  accessKeyId: '<Your AccessKeyId>',
  accessKeySecret: '<Your AccessKeySecret>',
});


try {
  const result = client.getBucketLifecycle('<yourBucketName>')

  // 查看生命周期规则中匹配的标签信息。
  result.rules.map(rule => {
    if (rule.tag) {
      rule.tag.map(_ => {
        console.log(`key: ${_.key}, value: ${_.value}`)
      })
    }
  })
} catch (error) {
  console.log(error)
}