本文介绍如何在开启版本控制状态下列举存储空间下(Bucket)的所有文件(Object)。
注意事项
关于OSS支持的Region与Endpoint的对应关系,请参见OSS地域和访问域名。
要列举文件,您必须有
oss:ListObjectVersions
权限。具体操作,请参见为RAM用户授予自定义的权限策略。
示例代码
以下代码用于列举指定Bucket中包括删除标记(Delete Marker)在内的Object的版本信息.
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 bucket = 'yourBucketName';
// 对象名称
const key = 'yourObjectName';
// 列出bucket中对象的版本信息
const listObjectVersions = async () => {
try {
// 调用listObjectVersions方法列出bucket中对象的版本信息
const res = await client.listObjectVersions({
bucket // 替换为你的bucket名称
});
// 打印返回结果,包含对象的版本信息
console.log(JSON.stringify(res));
} catch (err) {
// 捕获并处理请求错误
if (err instanceof RequestError) {
console.log('错误码: ', err.code); // 错误代码
console.log('错误信息: ', err.message); // 错误描述
console.log('请求ID: ', err.requestId); // 请求的唯一标识
console.log('HTTP状态码: ', err.status); // HTTP响应状态码
console.log('错误类别: ', err.ec); // 错误类别
} else {
console.log('未知错误: ', err); // 非RequestError类型的错误
}
}
};
// 调用函数,列出所有对象的版本信息
listObjectVersions();
常见使用场景
相关文档
列举Bucket中包括删除标记(Delete Marker)在内的所有Object的版本信息的API接口说明,请参见ListObjectVersions(GetBucketVersions)。
该文章对您有帮助吗?