版本控制應用於儲存空間(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();
相關文檔
關於管理版本控制的完整範例程式碼,請參見GitHub樣本。
設定Bucket版本控制狀態的API介面說明,請參見PutBucketVersioning。
擷取Bucket版本控制狀態的API介面說明,請參見GetBucketVersioning。
列舉Bucket中包括刪除標記(Delete Marker)在內的所有Object的版本資訊的API介面說明,請參見ListObjectVersions(GetBucketVersions)。