全部产品
Search
文档中心

Object Storage Service:Kebijakan retensi data (Node.js SDK)

更新时间:Nov 30, 2025

Kebijakan retensi data untuk Object Storage Service (OSS) memiliki atribut Write Once, Read Many (WORM). Fitur ini memungkinkan Anda menyimpan dan menggunakan data dengan cara yang mencegah penghapusan dan modifikasi. Untuk mencegah semua pengguna, termasuk Pemilik resource, dari memodifikasi atau menghapus objek dalam bucket OSS selama periode tertentu, Anda dapat menetapkan kebijakan retensi data pada bucket tersebut. Sebelum periode retensi berakhir, Anda hanya dapat mengunggah dan membaca objek di dalam bucket. Setelah periode retensi berakhir, objek tersebut dapat dimodifikasi atau dihapus.

Catatan

Sebelum mengonfigurasi kebijakan retensi, pastikan Anda memahami fitur ini terlebih dahulu. Untuk informasi selengkapnya, lihat Kebijakan retensi.

Buat kebijakan retensi data

Kode berikut membuat kebijakan retensi data.

const OSS = require('ali-oss');

const client = new OSS({
  // Setel region ke wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), setel region ke oss-cn-hangzhou.
  region: 'yourregion',
  // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,  
  authorizationV4: true,
  // Setel bucket ke nama bucket Anda.
  bucket: 'yourBucketName',
});
// Buat kebijakan retensi data.
async function initiateBucketWorm() {
 // Setel bucket ke nama bucket Anda.
  const bucket = 'yourbucketname'
  // Tentukan periode retensi dalam hari.
  const days = '<Retention Days>'
    const res = await client.initiateBucketWorm(bucket, days)
  console.log(res.wormId)
}

initiateBucketWorm()

Batalkan kebijakan retensi data yang belum dikunci

Kode berikut membatalkan kebijakan retensi data yang belum dikunci.

const OSS = require('ali-oss');

const client = new OSS({
  // Setel region ke wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), setel region ke oss-cn-hangzhou.
  region: 'yourregion',
  // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // Setel bucket ke nama bucket Anda.
  bucket: 'yourBucketName',
});
// Batalkan kebijakan retensi data.
async function abortBucketWorm() {
  // Setel bucket ke nama bucket Anda.
  const bucket = 'yourbucketname'
    try {
    await client.abortBucketWorm(bucket)
    console.log('abort success')
  } catch(err) {
        console.log('err: ', err)
    }
}

abortBucketWorm()

Kunci kebijakan retensi data

Kode berikut mengunci kebijakan retensi data.

const OSS = require('ali-oss');

const client = new OSS({
  // Setel region ke wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), setel region ke oss-cn-hangzhou.
  region: 'yourregion',
  // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // Setel bucket ke nama bucket Anda.
  bucket: 'yourBucketName',
});
// Kunci kebijakan retensi data.
async function completeBucketWorm() {
  // Setel bucket ke nama bucket Anda.
  const bucket = 'yourbucketname'
  const wormId = 'Your Worm Id'
    try {
        await client.completeBucketWorm(bucket, wormId)
  } catch(err) {
      console.log(err)
  }
}

completeBucketWorm()

Dapatkan kebijakan retensi data

Kode berikut mengambil kebijakan retensi data.

const OSS = require('ali-oss');

const client = new OSS({
  // Setel region ke wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), setel region ke oss-cn-hangzhou.
  region: 'yourregion',
  // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // Setel bucket ke nama bucket Anda.
  bucket: 'yourBucketName',
});
// Dapatkan kebijakan retensi data.
async function getBucketWorm() {
  // Setel bucket ke nama bucket Anda.
  const bucket = 'yourbucketname'
    try {
        const res = await client.getBucketWorm(bucket)
    // Lihat ID kebijakan retensi data.
    console.log(res.wormId)
    // Lihat status kebijakan retensi data. Status dapat berupa "InProgress" (belum dikunci) atau "Locked".
    console.log(res.state)
    // Lihat periode retensi untuk objek.
    console.log(res.days)
  } catch(err) {
      console.log(err)
  }
}

getBucketWorm()

Perpanjang periode retensi objek

Kode berikut memperpanjang periode retensi objek dalam kebijakan retensi data yang telah dikunci.

const OSS = require('ali-oss');

const client = new OSS({
  // Setel region ke wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), setel region ke oss-cn-hangzhou.
  region: 'yourregion',
  // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // Setel bucket ke nama bucket Anda.
  bucket: 'yourBucketName',
});
// Perpanjang periode retensi objek dalam kebijakan retensi data yang telah dikunci.
async function extendBucketWorm() {
  // Setel bucket ke nama bucket Anda.
  const bucket = 'yourbucketname'
  const wormId = 'Your Worm Id'
  const days = 'Retention Days'
    try {
        const res = await client.extendBucketWorm(bucket, wormId, days)
    console.log(res)
  } catch(err) {
      console.log(err)
  }
}

extendBucketWorm()

Referensi

  • Untuk kode contoh lengkap mengenai kebijakan retensi data, lihat contoh di GitHub.

  • Untuk informasi selengkapnya tentang operasi API untuk membuat kebijakan retensi data, lihat InitiateBucketWorm.

  • Untuk informasi selengkapnya tentang operasi API untuk membatalkan kebijakan retensi data yang belum dikunci, lihat AbortBucketWorm.

  • Untuk informasi selengkapnya tentang operasi API untuk mengunci kebijakan retensi data, lihat CompleteBucketWorm.

  • Untuk informasi selengkapnya tentang operasi API untuk mendapatkan kebijakan retensi data, lihat GetBucketWorm.

  • Untuk informasi selengkapnya tentang operasi API untuk memperpanjang periode retensi objek, lihat ExtendBucketWorm.