tencent cloud

文档反馈

列出对象

最后更新时间:2024-01-04 15:52:02

    简介

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

    SDK API 参考

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

    查询对象列表

    功能说明

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

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

    String bucketName = "examplebucket-1250000000"; //格式:BucketName-APPID;
    final GetBucketRequest getBucketRequest = new GetBucketRequest(bucketName);
    
    // 前缀匹配,用来规定返回的对象前缀地址
    getBucketRequest.setPrefix("dir/");
    
    // 单次返回最大的条目数量,默认1000
    getBucketRequest.setMaxKeys(100);
    
    cosXmlService.getBucketAsync(getBucketRequest, new CosXmlResultListener() {
    @Override
    public void onSuccess(CosXmlRequest request, CosXmlResult result) {
    GetBucketResult getBucketResult = (GetBucketResult) result;
    if (getBucketResult.listBucket.isTruncated) {
    // 表示数据被截断,需要拉取下一页数据
    prevPageResult = getBucketResult;
    }
    }
    
    // 如果您使用 kotlin 语言来调用,请注意回调方法中的异常是可空的,否则不会回调 onFail 方法,即:
    // clientException 的类型为 CosXmlClientException?,serviceException 的类型为 CosXmlServiceException?
    @Override
    public void onFail(CosXmlRequest cosXmlRequest,
    @Nullable CosXmlClientException clientException,
    @Nullable CosXmlServiceException serviceException) {
    if (clientException != null) {
    clientException.printStackTrace();
    } else {
    serviceException.printStackTrace();
    }
    }
    });
    说明
    更多完整示例,请前往 GitHub 查看。

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

    String bucketName = "examplebucket-1250000000"; //格式:BucketName-APPID;
    
    
    GetBucketRequest getBucketRequest = new GetBucketRequest(bucketName);
    
    // 前缀匹配,用来规定返回的对象前缀地址
    getBucketRequest.setPrefix("dir/");
    
    // prevPageResult 是上一页的返回结果,这里的 nextMarker 表示下一页的起始位置
    String nextMarker = prevPageResult.listBucket.nextMarker;
    getBucketRequest.setMarker(nextMarker);
    
    // 单次返回最大的条目数量,默认1000
    getBucketRequest.setMaxKeys(100);
    
    cosXmlService.getBucketAsync(getBucketRequest, new CosXmlResultListener() {
    @Override
    public void onSuccess(CosXmlRequest request, CosXmlResult result) {
    GetBucketResult getBucketResult = (GetBucketResult) result;
    if (getBucketResult.listBucket.isTruncated) {
    // 表示数据被截断,需要拉取下一页数据
    }
    }
    
    // 如果您使用 kotlin 语言来调用,请注意回调方法中的异常是可空的,否则不会回调 onFail 方法,即:
    // clientException 的类型为 CosXmlClientException?,serviceException 的类型为 CosXmlServiceException?
    @Override
    public void onFail(CosXmlRequest cosXmlRequest,
    @Nullable CosXmlClientException clientException,
    @Nullable CosXmlServiceException serviceException) {
    if (clientException != null) {
    clientException.printStackTrace();
    } else {
    serviceException.printStackTrace();
    }
    }
    });
    说明
    更多完整示例,请前往 GitHub 查看。

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

    String bucketName = "examplebucket-1250000000"; //格式:BucketName-APPID;
    GetBucketRequest getBucketRequest = new GetBucketRequest(bucketName);
    
    // 前缀匹配,用来规定返回的对象前缀地址
    getBucketRequest.setPrefix("dir/");
    
    // 单次返回最大的条目数量,默认1000
    getBucketRequest.setMaxKeys(100);
    
    // 定界符为一个符号,如果有 Prefix,
    // 则将 Prefix 到 delimiter 之间的相同路径归为一类,定义为 Common Prefix,
    // 然后列出所有 Common Prefix。如果没有 Prefix,则从路径起点开始
    getBucketRequest.setDelimiter("/");
    
    cosXmlService.getBucketAsync(getBucketRequest, new CosXmlResultListener() {
    @Override
    public void onSuccess(CosXmlRequest request, CosXmlResult result) {
    GetBucketResult getBucketResult = (GetBucketResult) result;
    }
    
    // 如果您使用 kotlin 语言来调用,请注意回调方法中的异常是可空的,否则不会回调 onFail 方法,即:
    // clientException 的类型为 CosXmlClientException?,serviceException 的类型为 CosXmlServiceException?
    @Override
    public void onFail(CosXmlRequest cosXmlRequest,
    @Nullable CosXmlClientException clientException,
    @Nullable CosXmlServiceException serviceException) {
    if (clientException != null) {
    clientException.printStackTrace();
    } else {
    serviceException.printStackTrace();
    }
    }
    });
    说明
    更多完整示例,请前往 GitHub 查看。

    查询对象历史版本列表

    功能说明

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

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

    String bucketName = "examplebucket-1250000000"; //格式:BucketName-APPID;
    final GetBucketObjectVersionsRequest getBucketRequest =
    new GetBucketObjectVersionsRequest(bucketName);
    
    // 前缀匹配,用来规定返回的对象前缀地址
    getBucketRequest.setPrefix("dir/");
    
    // 单次返回最大的条目数量,默认1000
    getBucketRequest.setMaxKeys(100);
    
    cosXmlService.getBucketObjectVersionsAsync(getBucketRequest,
    new CosXmlResultListener() {
    @Override
    public void onSuccess(CosXmlRequest request, CosXmlResult result) {
    GetBucketObjectVersionsResult getBucketResult =
    (GetBucketObjectVersionsResult) result;
    if (getBucketResult.listVersionResult.isTruncated) {
    // 表示数据被截断,需要拉取下一页数据
    prevPageResult = getBucketResult;
    }
    }
    
    // 如果您使用 kotlin 语言来调用,请注意回调方法中的异常是可空的,否则不会回调 onFail 方法,即:
    // clientException 的类型为 CosXmlClientException?,serviceException 的类型为 CosXmlServiceException?
    @Override
    public void onFail(CosXmlRequest cosXmlRequest,
    @Nullable CosXmlClientException clientException,
    @Nullable CosXmlServiceException serviceException) {
    if (clientException != null) {
    clientException.printStackTrace();
    } else {
    serviceException.printStackTrace();
    }
    }
    });
    说明
    更多完整示例,请前往 GitHub 查看。

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

    String bucketName = "examplebucket-1250000000"; //格式:BucketName-APPID;
    final GetBucketObjectVersionsRequest getBucketRequest =
    new GetBucketObjectVersionsRequest(bucketName);
    
    // 前缀匹配,用来规定返回的对象前缀地址
    getBucketRequest.setPrefix("dir/");
    
    // 单次返回最大的条目数量,默认1000
    getBucketRequest.setMaxKeys(100);
    
    // prevPageResult 是上一页的返回结果,这里的 nextMarker 与 nextVersionIdMarker
    // 表示下一页的起始位置
    getBucketRequest.setKeyMarker(prevPageResult.listVersionResult
    .nextKeyMarker);
    getBucketRequest.setVersionIdMarker(prevPageResult.listVersionResult
    .nextVersionIdMarker);
    
    cosXmlService.getBucketObjectVersionsAsync(getBucketRequest,
    new CosXmlResultListener() {
    @Override
    public void onSuccess(CosXmlRequest request, CosXmlResult result) {
    GetBucketObjectVersionsResult getBucketResult =
    (GetBucketObjectVersionsResult) result;
    if (getBucketResult.listVersionResult.isTruncated) {
    // 表示数据被截断,需要拉取下一页数据
    prevPageResult = getBucketResult;
    }
    }
    
    // 如果您使用 kotlin 语言来调用,请注意回调方法中的异常是可空的,否则不会回调 onFail 方法,即:
    // clientException 的类型为 CosXmlClientException?,serviceException 的类型为 CosXmlServiceException?
    @Override
    public void onFail(CosXmlRequest cosXmlRequest,
    @Nullable CosXmlClientException clientException,
    @Nullable CosXmlServiceException serviceException) {
    if (clientException != null) {
    clientException.printStackTrace();
    } else {
    serviceException.printStackTrace();
    }
    }
    });
    说明
    更多完整示例,请前往 GitHub 查看。
    联系我们

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

    技术支持

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

    7x24 电话支持