全部產品
Search
文件中心

Object Storage Service:管理生命週期

更新時間:Aug 30, 2018

OSS允許使用者對Bucket設定生命週期規則,以自動淘汰過期掉的檔案,節省儲存空間。使用者可以同時設定多條規則,一條規則包含:

  • 規則ID,用於標識一條規則,不能重複
  • 受影響的檔案首碼,此規則只作用於符合首碼的檔案
  • 過期時間,有兩種指定方式:
    1. 指定距檔案最後修改時間N天過期
    2. 指定在具體的某一天過期,即在那天之後符合首碼的檔案將會過期,而不論檔案的最後修改時間。不推薦使用。
  • 是否生效

更多關於生命週期的內容請參考 檔案生命週期

設定生命週期規則

通過putBucketLifecycle來設定生命週期規則:

  1. let OSS = require('ali-oss')
  2. let client = new OSS({
  3. region: '<Your region>'
  4. accessKeyId: '<Your AccessKeyId>',
  5. accessKeySecret: '<Your AccessKeySecret>',
  6. bucket: '<Your bucket name>'
  7. });
  8. async function putBucketLifecycle () {
  9. try {
  10. let result = yield client.putBucketLifecycle('bucket-name', 'region', [
  11. {
  12. id: 'rule1',
  13. status: 'Enabled',
  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 (e) {
  25. console.log(e);
  26. }
  27. }
  28. putBucketLifecycle();

查看生命週期規則

通過getBucketLifecycle來查看生命週期規則:

  1. let OSS = require('ali-oss')
  2. let client = new OSS({
  3. region: '<Your region>'
  4. accessKeyId: '<Your AccessKeyId>',
  5. accessKeySecret: '<Your AccessKeySecret>',
  6. bucket: '<Your bucket name>'
  7. });
  8. async function getBucketLifecycle () {
  9. try {
  10. let result = await client.getBucketLifecycle('bucket-name', 'region');
  11. console.log(result);
  12. } catch (e) {
  13. console.log(e);
  14. }
  15. }
  16. getBucketLifecycle();

清空生命週期規則

通過deleteBucketLifecycle設定一個空的Rule數組來清空生命週期規則:

  1. let OSS = require('ali-oss')
  2. let client = new OSS({
  3. region: '<Your region>'
  4. accessKeyId: '<Your AccessKeyId>',
  5. accessKeySecret: '<Your AccessKeySecret>',
  6. bucket: '<Your bucket name>'
  7. });
  8. async function deleteBucketLifecycle () {
  9. try {
  10. let result = await client.deleteBucketLifecycle('bucket-name', 'region');
  11. console.log(result);
  12. } catch (e) {
  13. console.log(e);
  14. }
  15. }
  16. deleteBucketLifecycle();