OSS允許使用者對Bucket設定生命週期規則,以自動淘汰過期掉的檔案,節省儲存空間。使用者可以同時設定多條規則,一條規則包含:
- 規則ID,用於標識一條規則,不能重複
- 受影響的檔案首碼,此規則只作用於符合首碼的檔案
- 過期時間,有兩種指定方式:
- 指定距檔案最後修改時間N天過期
- 指定在具體的某一天過期,即在那天之後符合首碼的檔案將會過期,而不論檔案的最後修改時間。不推薦使用。
- 是否生效
更多關於生命週期的內容請參考 檔案生命週期
設定生命週期規則
通過putBucketLifecycle
來設定生命週期規則:
let OSS = require('ali-oss')
let client = new OSS({
region: '<Your region>'
accessKeyId: '<Your AccessKeyId>',
accessKeySecret: '<Your AccessKeySecret>',
bucket: '<Your bucket name>'
});
async function putBucketLifecycle () {
try {
let 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 (e) {
console.log(e);
}
}
putBucketLifecycle();
查看生命週期規則
通過getBucketLifecycle
來查看生命週期規則:
let OSS = require('ali-oss')
let client = new OSS({
region: '<Your region>'
accessKeyId: '<Your AccessKeyId>',
accessKeySecret: '<Your AccessKeySecret>',
bucket: '<Your bucket name>'
});
async function getBucketLifecycle () {
try {
let result = await client.getBucketLifecycle('bucket-name', 'region');
console.log(result);
} catch (e) {
console.log(e);
}
}
getBucketLifecycle();
清空生命週期規則
通過deleteBucketLifecycle
設定一個空的Rule數組來清空生命週期規則:
let OSS = require('ali-oss')
let client = new OSS({
region: '<Your region>'
accessKeyId: '<Your AccessKeyId>',
accessKeySecret: '<Your AccessKeySecret>',
bucket: '<Your bucket name>'
});
async function deleteBucketLifecycle () {
try {
let result = await client.deleteBucketLifecycle('bucket-name', 'region');
console.log(result);
} catch (e) {
console.log(e);
}
}
deleteBucketLifecycle();