全部產品
Search
文件中心

Object Storage Service:Node.js管理版本控制

更新時間:Nov 01, 2024

版本控制應用於儲存空間(Bucket)內的所有檔案(Object)。通過Object的版本管理,在錯誤覆蓋或者刪除Object後,您能夠將Bucket中儲存的Object恢複至任意時刻的歷史版本。

通過Object的版本管理,在錯誤覆蓋或者刪除Object後,您能夠將Bucket中儲存的Object恢複至任意時刻的歷史版本。Bucket的版本狀態包括非版本化(預設)、開啟版本控制及暫停版本控制三種。關於版本控制的詳情,請參見開發指南的版本控制概述

說明

版本控制目前支援6.8.0及以上版本SDK。

設定Bucket版本控制狀態

以下代碼用於設定Bucket為開啟版本控制(Enabled)或暫停版本控制(Suspended)狀態。

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

const client = new OSS({
  // yourregion填寫Bucket所在地區。以華東1(杭州)為例,Region填寫為oss-cn-hangzhou。
  region: 'yourregion',
  // 從環境變數中擷取訪問憑證。運行本程式碼範例之前,請確保已設定環境變數OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // yourbucketname填寫儲存空間名稱。
  bucket: 'yourbucketname'
});

async function putBucketVersioning() {
  // 設定儲存空間版本控制狀態為Enabled或Suspended。
  const status = 'Enabled'; // `Enabled` or `Suspended`
  const result = await client.putBucketVersioning('BucketName', status);
  console.log(result);
}
putBucketVersioning();

擷取Bucket版本控制狀態資訊

以下代碼用於擷取Bucket的版本控制狀態資訊。

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

const client = new OSS({
  // yourregion填寫Bucket所在地區。以華東1(杭州)為例,Region填寫為oss-cn-hangzhou。
  region: 'yourregion',
  // 從環境變數中擷取訪問憑證。運行本程式碼範例之前,請確保已設定環境變數OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // yourbucketname填寫儲存空間名稱。
  bucket: 'yourbucketname'
});

async function getBucketVersioning() {
  // 擷取儲存空間版本控制狀態資訊。
  const result = await client.getBucketVersioning('BucketName');
  console.log(result.versionStatus);
}
getBucketVersioning();

列舉Bucket中所有Object的版本資訊

以下代碼用於列舉指定Bucket中包括刪除標記(Delete Marker)在內的所有Object的版本資訊。

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

const client = new OSS({
  // yourregion填寫Bucket所在地區。以華東1(杭州)為例,Region填寫為oss-cn-hangzhou。
  region: 'yourregion',
  // 從環境變數中擷取訪問憑證。運行本程式碼範例之前,請確保已設定環境變數OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // yourbucketname填寫儲存空間名稱。
  bucket: 'yourbucketname'
});

async function getBucketVersions() {
  // 列舉包括刪除標記(Delete Marker)在內的所有Object的版本資訊。
  const result = await client.getBucketVersions();
  console.log(result.objects); 
  console.log(result.deleteMarker);
}
getBucketVersions();

相關文檔