开发者社区 问答 正文

JavaScript-SDK之如何实现管理生命周期?

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

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

更多关于生命周期的内容请参考 文件生命周期

设置生命周期规则


通过putBucketLifecycle来设置生命周期规则: var co = require('co');
var OSS = require('ali-oss')
var client = new OSS({
  region: '<Your region>'
  accessKeyId: '<Your AccessKeyId>',
  accessKeySecret: '<Your AccessKeySecret>',
  bucket: '<Your bucket name>'
});
co(function* () {
  var result = yield client.putBucketLifecycle('bucket-name', 'region', [
    {
      id: 'rule1',
      status: 'Enabled',
      prefix: 'foo/',
      days: 3
    },
    {
      id: 'rule2',
      status: 'Disabled',
      date: '2022-10-11T00:00:00.000Z'
    }
  ]);
  console.log(result);
}).catch(function (err) {
  console.log(err);
});



查看生命周期规则


通过getBucketLifecycle来查看生命周期规则: var co = require('co');
var OSS = require('ali-oss')
var client = new OSS({
  region: '<Your region>'
  accessKeyId: '<Your AccessKeyId>',
  accessKeySecret: '<Your AccessKeySecret>',
  bucket: '<Your bucket name>'
});
co(function* () {
  var result = yield client.getBucketLifecycle('bucket-name', 'region');
  console.log(result);
}).catch(function (err) {
  console.log(err);
});



清空生命周期规则


通过deleteBucketLifecycle设置一个空的Rule数组来清空生命周期规则: var co = require('co');
var OSS = require('ali-oss')
var client = new OSS({
  region: '<Your region>'
  accessKeyId: '<Your AccessKeyId>',
  accessKeySecret: '<Your AccessKeySecret>',
  bucket: '<Your bucket name>'
});
co(function* () {
  var result = yield client.deleteBucketLifecycle('bucket-name', 'region');
  console.log(result);
}).catch(function (err) {
  console.log(err);
});

展开
收起
青衫无名 2017-10-19 09:46:07 1732 分享 版权
阿里云 AI 助理回答

阿里云对象存储(OSS)确实提供了一项强大的功能,即Bucket的生命周期管理,帮助用户自动管理和清理不再需要的文件,从而节省存储成本。您提供的信息已经很全面了,这里我再用更简洁的语言概括一下这些操作,并补充一些可能对用户有帮助的细节。

设置生命周期规则

通过调用putBucketLifecycle方法,您可以为指定的Bucket设置一系列生命周期规则。每个规则由以下关键部分组成: - Rule ID:唯一标识符,确保每条规则在同一个Bucket中是唯一的。 - Status:规则的状态,可以是Enabled(启用)或Disabled(禁用),允许您控制规则是否生效。 - Prefix:文件名前缀,规则仅作用于匹配该前缀的文件。 - 过期时间设定: - 指定距文件最后修改时间N天后过期。 - 或者指定一个具体的日期,在此日期之后的所有匹配文件将过期。

示例代码展示了如何设置两条规则,一条按天数删除,另一条按特定日期但被设置为不生效。

查看生命周期规则

使用getBucketLifecycle方法,您可以获取当前Bucket上已设置的所有生命周期规则。这有助于审计和确认您的配置是否符合预期。

清空生命周期规则

若要移除所有已设置的生命周期规则,可以通过调用deleteBucketLifecycle并传入一个空的规则数组来实现。这并不直接“删除”规则,而是通过设置一个空集合来达到清空效果。

注意事项

  • 确保在执行这些操作之前,您已正确安装了阿里云OSS Node.js SDK,并且已经配置好了访问密钥ID、密钥以及正确的区域信息。
  • 生命周期规则的变更不会立即影响已存在的文件,系统会在一段时间后(通常很快,但非即时)应用新的规则。
  • 当考虑使用基于具体日期的过期策略时,虽然可用,但官方推荐优先使用基于文件最后修改时间的方式,因为后者更为灵活且易于维护。

希望这些信息能帮助您更好地管理和优化阿里云OSS中的存储资源。如果有更多问题或需要进一步的帮助,请随时告诉我!

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答