edit-icon download-icon

ライフサイクルルールの設定

最終更新日: Nov 07, 2017

OSS では、バケットのライフサイクルルールを設定することにより、期限切れのオブジェクトを自動的に削除して、ストレージ容量を節約することができます。複数のライフサイクルルールを設定できます。ライフサイクルルールには、次の要素が含まれます。

  • ルール ID: この ID はルールを識別するために使用され、繰り返すことはできません。

  • ルールの影響を受けるオブジェクトのプレフィックス: ルールは、指定されたプレフィックスを持つオブジェクトにのみ適用されます。

  • 有効期限: 次のいずれかの方法で指定できます。

    • オブジェクトが最後に変更されてから何日後にオブジェクトを削除するかを指定します。

    • 特定の日付にオブジェクトの期限が切れることを指定します。つまり、指定したプレフィックスを持つすべてのオブジェクトは、オブジェクトの最終変更時刻に関係なく、その日付以降、期限切れになります。この方法はお勧めできません。

  • 有効にするかどうか

ライフサイクルの詳細については、「オブジェクトのライフサイクル」を参照してください。

ライフサイクルルールの設定

ライフサイクルルールを設定するには、putBucketLifecycle を使用します。

  1. var co = require('co');
  2. var OSS = require('ali-oss')
  3. var client = new OSS({
  4. region: '<Your region>'
  5. accessKeyId: '<Your AccessKeyId>',
  6. accessKeySecret: '<Your AccessKeySecret>',
  7. bucket: '<Your bucket name>'
  8. });
  9. co(function* () {
  10. var result = yield client.putBucketLifecycle('bucket-name', 'region', [
  11. {
  12. id: 'rule1',
  13. status: 'Enable',
  14. prefix: 'foo/',
  15. days: 3
  16. },
  17. {
  18. id: 'rule2',
  19. status: 'Disabled',
  20. date: '2022-10-11T00:00:00.000Z'
  21. }
  22. ]);
  23. console.log(result);
  24. }).catch(function (err) {
  25. console.log(err);
  26. });

ライフサイクルルールの表示

ライフサイクルルールを表示するには、getBucketLifecycle を使用します。

  1. var co = require('co');
  2. var OSS = require('ali-oss')
  3. var client = new OSS({
  4. region: '<Your region>'
  5. accessKeyId: '<Your AccessKeyId>',
  6. accessKeySecret: '<Your AccessKeySecret>',
  7. bucket: '<Your bucket name>'
  8. });
  9. co(function* () {
  10. var result = yield client.getBucketLifecycle('bucket-name', 'region');
  11. console.log(result);
  12. }).catch(function (err) {
  13. console.log(err);
  14. });

ライフサイクルルールのクリア

ライフサイクルルールをクリアするには、deleteBucketLifecycle を使用して null Rule アレイを設定します。

  1. var co = require('co');
  2. var OSS = require('ali-oss')
  3. var client = new OSS({
  4. region: '<Your region>'
  5. accessKeyId: '<Your AccessKeyId>',
  6. accessKeySecret: '<Your AccessKeySecret>',
  7. bucket: '<Your bucket name>'
  8. });
  9. co(function* () {
  10. var result = yield client.deleteBucketLifecycle('bucket-name', 'region');
  11. console.log(result);
  12. }).catch(function (err) {
  13. console.log(err);
  14. });