版本控制应用于存储空间(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();
相关文档
设置Bucket版本控制状态的API接口说明,请参见PutBucketVersioning。
获取Bucket版本控制状态的API接口说明,请参见GetBucketVersioning。
该文章对您有帮助吗?
- 本页导读 (1)
- 注意事项
- 设置Bucket版本控制状态
- 获取Bucket版本控制状态信息
- 相关文档