tencent cloud

文档反馈

列出对象

最后更新时间:2024-01-19 11:57:11

    简介

    本文档提供关于列出对象操作相关的 API 概览以及 SDK 示例代码。
    API
    操作名
    操作描述
    查询对象列表
    查询存储桶下的部分或者全部对象
    查询对象及其历史版本列表
    查询存储桶下的部分或者全部对象及其历史版本信息

    SDK API 参考

    SDK 所有接口的具体参数与方法说明,请参考 SDK API

    查询对象列表

    功能说明

    查询存储桶下的部分或者全部对象。

    示例代码一: 获取第一页数据

    Objective-C
    QCloudGetBucketRequest* request = [QCloudGetBucketRequest new];
    
    // 存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.tencentcloud.com/cos5/bucket
    request.bucket = @"examplebucket-1250000000";
    
    // 单次返回的最大条目数量,默认1000
    request.maxKeys = 100;
    
    // 前缀匹配,用来规定返回的文件前缀地址
    request.prefix = @"dir1/";
    
    [request setFinishBlock:^(QCloudListBucketResult * result, NSError* error) {
    // result 返回具体信息
    // QCloudListBucketResult.contents 桶内文件数组
    // QCloudListBucketResult.commonPrefixes 桶内文件夹数组
    if (result.isTruncated) {
    // 表示数据被截断,需要拉取下一页数据
    self->prevPageResult = result;
    }
    }];
    
    [[QCloudCOSXMLService defaultCOSXML] GetBucket:request];
    说明
    更多完整示例,请前往 GitHub 查看。
    Swift
    let getBucketReq = QCloudGetBucketRequest.init();
    
    // 存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.tencentcloud.com/cos5/bucket
    getBucketReq.bucket = "examplebucket-1250000000";
    
    // 单次返回的最大条目数量,默认1000
    getBucketReq.maxKeys = 100;
    
    // 前缀匹配
    getBucketReq.prefix = "dir/";
    
    getBucketReq.setFinish { (result, error) in
    if let result = result {
    // 文件列表
    let contents = result.contents
    
    if (result.isTruncated) {
    // 数据被截断,需要请求下一页数据
    self.prevPageResult = result;
    }
    } else {
    print(error!);
    }
    }
    QCloudCOSXMLService.defaultCOSXML().getBucket(getBucketReq);
    说明
    更多完整示例,请前往 GitHub 查看。

    示例代码二:请求下一页数据

    Objective-C
    QCloudGetBucketRequest* request = [QCloudGetBucketRequest new];
    
    // 存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.tencentcloud.com/cos5/bucket
    request.bucket = @"examplebucket-1250000000";
    
    // prevPageResult 是上一页的返回结果
    // 分页参数 默认以UTF-8二进制顺序列出条目,所有列出条目从marker开始
    request.marker = prevPageResult.nextMarker;
    
    // 单次返回的最大条目数量,默认1000
    request.maxKeys = 100;
    
    [request setFinishBlock:^(QCloudListBucketResult * result, NSError* error) {
    // result 返回具体信息
    // QCloudListBucketResult.contents 桶内文件数组
    // QCloudListBucketResult.commonPrefixes 桶内文件夹数组
    if (result.isTruncated) {
    // 表示数据被截断,需要拉取下一页数据
    self->prevPageResult = result;
    }
    }];
    
    [[QCloudCOSXMLService defaultCOSXML] GetBucket:request];
    说明
    更多完整示例,请前往 GitHub 查看。
    Swift
    let getBucketReq = QCloudGetBucketRequest.init();
    
    // 存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.tencentcloud.com/cos5/bucket
    getBucketReq.bucket = "examplebucket-1250000000";
    
    // 分页参数 默认以UTF-8二进制顺序列出条目,所有列出条目从marker开始
    if let result = self.prevPageResult {
    getBucketReq.marker = result.marker
    }
    
    // 单次返回的最大条目数量,默认1000
    getBucketReq.maxKeys = 100;
    // 前缀匹配
    getBucketReq.prefix = "dir/";
    
    getBucketReq.setFinish { (result, error) in
    if let result = result {
    // 文件列表
    let contents = result.contents
    
    if (result.isTruncated) {
    // 数据被截断,需要请求下一页数据
    self.prevPageResult = result;
    }
    } else {
    print(error!);
    }
    }
    QCloudCOSXMLService.defaultCOSXML().getBucket(getBucketReq);
    说明
    更多完整示例,请前往 GitHub 查看。

    示例代码三:获取对象列表与子目录

    Objective-C
    QCloudGetBucketRequest* request = [QCloudGetBucketRequest new];
    
    // 存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.tencentcloud.com/cos5/bucket
    request.bucket = @"examplebucket-1250000000";
    
    // 单次返回的最大条目数量,默认1000
    request.maxKeys = 100;
    
    // 前缀匹配,用来规定返回的文件前缀地址
    request.prefix = @"dir1/";
    
    // 定界符为一个符号,如果有 Prefix,则将 Prefix 到 delimiter 之间的相同路径归为一类,
    // 定义为 Common Prefix,然后列出所有 Common Prefix。如果没有 Prefix,则从路径起点开始
    // delimiter:路径分隔符 固定为 /
    request.delimiter = @"/";
    
    // prevPageResult 是上一页的返回结果
    // 分页参数 默认以UTF-8二进制顺序列出条目,所有列出条目从marker开始
    request.marker = prevPageResult.nextMarker;
    
    [request setFinishBlock:^(QCloudListBucketResult * result, NSError* error) {
    // result 返回具体信息
    // QCloudListBucketResult.contents 桶内文件数组
    // QCloudListBucketResult.commonPrefixes 桶内文件夹数组
    if (result.isTruncated) {
    // 表示数据被截断,需要拉取下一页数据
    self->prevPageResult = result;
    }
    }];
    
    [[QCloudCOSXMLService defaultCOSXML] GetBucket:request];
    说明
    更多完整示例,请前往 GitHub 查看。
    Swift
    let getBucketReq = QCloudGetBucketRequest.init();
    
    // 存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.tencentcloud.com/cos5/bucket
    getBucketReq.bucket = "examplebucket-1250000000";
    
    // 单次返回的最大条目数量,默认1000
    getBucketReq.maxKeys = 100;
    
    // 前缀匹配,用来规定返回的文件前缀地址
    getBucketReq.prefix = "dir/";
    
    // 定界符为一个符号,如果有 Prefix,则将 Prefix 到 delimiter 之间的相同路径归为一类,
    // 定义为 Common Prefix,然后列出所有 Common Prefix。如果没有 Prefix,则从路径起点开始
    // delimiter:路径分隔符 固定为 /
    getBucketReq.delimiter = "/";
    
    // 分页参数 默认以UTF-8二进制顺序列出条目,所有列出条目从marker开始
    if let result = self.prevPageResult {
    getBucketReq.marker = result.marker
    }
    
    getBucketReq.setFinish { (result, error) in
    if let result = result {
    // 文件列表
    let contents = result.contents
    
    if (result.isTruncated) {
    // 数据被截断,需要请求下一页数据
    self.prevPageResult = result;
    }
    } else {
    print(error!);
    }
    }
    QCloudCOSXMLService.defaultCOSXML().getBucket(getBucketReq);
    说明
    更多完整示例,请前往 GitHub 查看。

    查询对象历史版本列表

    功能说明

    查询开启版本控制的存储桶下的部分或者全部对象。

    示例代码:获取对象历史版本列表第一页数据

    QCloudListObjectVersionsRequest* listObjectVersionsRequest = [[QCloudListObjectVersionsRequest alloc] init];
    
    // 存储桶名称
    listObjectVersionsRequest.bucket = @"bucketname";
    
    // 一页请求数据条目数,默认 1000
    listObjectVersionsRequest.maxKeys = 100;
    
    //从当前key列出剩余的条目
    listObjectVersionsRequest.keyMarker = prevPageResult.nextKeyMarker;
    //从当前key的某个版本列出剩余的条目
    listObjectVersionsRequest.versionIdMarker = prevPageResult.nextVersionIDMarkder;
    [listObjectVersionsRequest setFinishBlock:^(QCloudListVersionsResult * _Nonnull result,
    NSError * _Nonnull error) {
    
    // 已删除的文件
    NSArray<QCloudDeleteMarker*> *deleteMarker = result.deleteMarker;
    
    // 对象版本条目
    NSArray<QCloudVersionContent*> *versionContent = result.versionContent;
    
    if (result.isTruncated) {
    // 表示数据被截断,需要拉取下一页数据
    self->prevPageResult = result;
    }
    
    
    }];
    
    [[QCloudCOSXMLService defaultCOSXML] ListObjectVersions:listObjectVersionsRequest];
    说明
    更多完整示例,请前往 GitHub 查看。
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持