Harmony管理版本控制

更新时间:2025-03-10 10:32:18

版本控制应用于存储空间(Bucket)内的所有文件(Object)。通过Object的版本管理,在错误覆盖或者删除Object后,您能够将Bucket中存储的Object恢复至任意时刻的历史版本。

注意事项

  • 通过Object的版本管理,在错误覆盖或者删除Object后,您能够将Bucket中存储的Object恢复至任意时刻的历史版本。Bucket的版本状态包括非版本化(默认)、开启版本控制及暂停版本控制三种。关于版本控制的详情,请参见开发指南的版本控制

  • 要设置Bucket版本控制状态,您必须具有oss:PutBucketVersioning权限;要获取Bucket版本控制状态信息,您必须具有oss:GetBucketVersioning权限。具体操作,请参见RAM用户授权自定义的权限策略

设置Bucket版本控制状态

以下代码用于设置Bucket为开启版本控制(Enabled)或暂停版本控制(Suspended)状态。

import Client, { RequestError, EVersionStatus } from '@aliyun/oss';

// 创建OSS客户端实例
const client = new Client({
  // 请替换为STS临时身份凭证的Access Key ID
  accessKeyId: 'yourAccessKeyId',
  // 请替换为STS临时身份凭证的Access Key Secret
  accessKeySecret: 'yourAccessKeySecret',
  // 请替换为STS临时身份凭证的Security Token
  securityToken: 'yourSecurityToken',
  // 填写Bucket所在地域。以华东1(杭州)为例,Region填写为oss-cn-hangzhou
  region: 'oss-cn-hangzhou',
});

// 设置bucket的版本控制状态
const putBucketVersioning = async () => {
  try {
    // 调用putBucketVersioning方法设置bucket的版本控制状态
    const res = await client.putBucketVersioning({
      bucket: 'yourBucketName', // 替换为你的bucket名称
      status: EVersionStatus.ENABLED // 设置版本控制状态为启用(ENABLED)
    });

    // 打印返回结果
    console.log(JSON.stringify(res));
  } catch (err) {
    // 捕获并处理请求错误
    if (err instanceof RequestError) {
      console.log('错误码: ', err.code); // 错误代码,例如"InvalidArgument"表示参数无效
      console.log('错误信息: ', err.message); // 错误描述,提供更详细的错误信息
      console.log('请求ID: ', err.requestId); // 请求的唯一标识,用于排查问题
      console.log('HTTP状态码: ', err.status); // HTTP响应状态码,例如400表示客户端错误
      console.log('错误类别: ', err.ec); // 错误类别,进一步分类错误类型
    } else {
      console.log('未知错误: ', err); // 非RequestError类型的错误,可能是其他异常
    }
  }
};

// 调用函数,设置bucket的版本控制状态
putBucketVersioning();

获取Bucket版本控制状态信息

以下代码用于获取Bucket的版本控制状态信息。

import Client, { RequestError } from '@aliyun/oss';

// 创建OSS客户端实例
const client = new Client({
  // 请替换为STS临时身份凭证的Access Key ID
  accessKeyId: 'yourAccessKeyId',
  // 请替换为STS临时身份凭证的Access Key Secret
  accessKeySecret: 'yourAccessKeySecret',
  // 请替换为STS临时身份凭证的Security Token
  securityToken: 'yourSecurityToken',
  // 填写Bucket所在地域。以华东1(杭州)为例,Region填写为oss-cn-hangzhou
  region: 'oss-cn-hangzhou',
});

// 获取bucket的版本控制状态
const getBucketVersioning = async () => {
  try {
    // 调用getBucketVersioning方法获取指定bucket的版本控制状态
    const res = await client.getBucketVersioning({
      bucket: 'yourBucketName' // 替换为你的bucket名称
    });

    // 打印返回结果,包含bucket的版本控制状态
    console.log(JSON.stringify(res));
  } catch (err) {
    // 捕获并处理请求错误
    if (err instanceof RequestError) {
      console.log('错误码: ', err.code); // 错误代码,例如"NoSuchBucket"表示bucket不存在
      console.log('错误信息: ', err.message); // 错误描述,提供更详细的错误信息
      console.log('请求ID: ', err.requestId); // 请求的唯一标识,用于排查问题
      console.log('HTTP状态码: ', err.status); // HTTP响应状态码,例如404表示资源未找到
      console.log('错误类别: ', err.ec); // 错误类别,进一步分类错误类型
    } else {
      console.log('未知错误: ', err); // 非RequestError类型的错误,可能是其他异常
    }
  }
};

// 调用函数,获取bucket的版本控制状态
getBucketVersioning();

相关文档

  • 本页导读 (1)
  • 注意事项
  • 设置Bucket版本控制状态
  • 获取Bucket版本控制状态信息
  • 相关文档