开发者指南

API 文档

SDK 文档

列出对象

最近更新时间:2020-08-20 15:56:54

简介

本文档提供关于列出对象操作相关的 API 概览以及 SDK 示例代码。

API 操作名 操作描述
GET Bucket(List Objects) 查询对象列表 查询存储桶下的部分或者全部对象
GET Bucket Object Versions 查询对象及其历史版本列表 查询存储桶下的部分或者全部对象及其历史版本信息

SDK API 参考

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

查询对象列表

功能说明

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

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

try
{
  string bucket = "examplebucket-1250000000"; //格式:BucketName-APPID
  GetBucketRequest request = new GetBucketRequest(bucket);
  //执行请求
  GetBucketResult result = cosXml.GetBucket(request);
  //bucket的相关信息
  ListBucket info = result.listBucket;
  if (info.isTruncated) {
    // 数据被截断,记录下数据下标
    this.nextMarker = info.nextMarker;
  }
}
catch (COSXML.CosException.CosClientException clientEx)
{
  //请求失败
  Console.WriteLine("CosClientException: " + clientEx);
}
catch (COSXML.CosException.CosServerException serverEx)
{
  //请求失败
  Console.WriteLine("CosServerException: " + serverEx.GetInfo());
}
说明:

更多完整示例,请前往 GitHub 查看。

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

try
{
  string bucket = "examplebucket-1250000000"; //格式:BucketName-APPID
  GetBucketRequest request = new GetBucketRequest(bucket);
  //上一次拉取数据的下标
  request.SetMarker(this.nextMarker);
  //执行请求
  GetBucketResult result = cosXml.GetBucket(request);
  //bucket的相关信息
  ListBucket info = result.listBucket;
}
catch (COSXML.CosException.CosClientException clientEx)
{
  //请求失败
  Console.WriteLine("CosClientException: " + clientEx);
}
catch (COSXML.CosException.CosServerException serverEx)
{
  //请求失败
  Console.WriteLine("CosServerException: " + serverEx.GetInfo());
}
说明:

更多完整示例,请前往 GitHub 查看。

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

try
{
  string bucket = "examplebucket-1250000000"; //格式:BucketName-APPID
  GetBucketRequest request = new GetBucketRequest(bucket);
  //获取 a/ 下的对象以及子目录
  request.SetPrefix("a/");
  //执行请求
  GetBucketResult result = cosXml.GetBucket(request);
  //bucket的相关信息
  ListBucket info = result.listBucket;
  // 对象列表
  List<ListBucket.Contents> objects = info.contentsList;
  // 子目录列表
  List<ListBucket.CommonPrefixes> subDirs = info.commonPrefixesList;
}
catch (COSXML.CosException.CosClientException clientEx)
{
  //请求失败
  Console.WriteLine("CosClientException: " + clientEx);
}
catch (COSXML.CosException.CosServerException serverEx)
{
  //请求失败
  Console.WriteLine("CosServerException: " + serverEx.GetInfo());
}
说明:

更多完整示例,请前往 GitHub 查看。

查询对象历史版本列表

功能说明

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

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

try
{
  string bucket = "examplebucket-1250000000"; //格式:BucketName-APPID
  ListBucketVersionsRequest request = new ListBucketVersionsRequest(bucket);
  //执行请求
  ListBucketVersionsResult result = cosXml.ListBucketVersions(request);
  //bucket的相关信息
  ListBucketVersions info = result.listBucketVersions;

  List<ListBucketVersions.ObjectVersion> objects = info.objectVersionList;
  List<ListBucketVersions.CommonPrefixes> prefixes = info.commonPrefixesList;

  if (info.isTruncated) {
    // 数据被截断,记录下数据下标
    this.keyMarker = info.nextKeyMarker;
    this.versionIdMarker = info.nextVersionIdMarker;
  }
}
catch (COSXML.CosException.CosClientException clientEx)
{
  //请求失败
  Console.WriteLine("CosClientException: " + clientEx);
}
catch (COSXML.CosException.CosServerException serverEx)
{
  //请求失败
  Console.WriteLine("CosServerException: " + serverEx.GetInfo());
}
说明:

更多完整示例,请前往 GitHub 查看。

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

try
{
  string bucket = "examplebucket-1250000000"; //格式:BucketName-APPID
  ListBucketVersionsRequest request = new ListBucketVersionsRequest(bucket);

  // 上一页的数据结束下标
  request.SetKeyMarker(this.keyMarker);
  request.SetVersionIdMarker(this.versionIdMarker);

  //执行请求
  ListBucketVersionsResult result = cosXml.ListBucketVersions(request);
  ListBucketVersions info = result.listBucketVersions;

  if (info.isTruncated) {
    // 数据被截断,记录下数据下标
    this.keyMarker = info.nextKeyMarker;
    this.versionIdMarker = info.nextVersionIdMarker;
  }
}
catch (COSXML.CosException.CosClientException clientEx)
{
  //请求失败
  Console.WriteLine("CosClientException: " + clientEx);
}
catch (COSXML.CosException.CosServerException serverEx)
{
  //请求失败
  Console.WriteLine("CosServerException: " + serverEx.GetInfo());
}
说明:

更多完整示例,请前往 GitHub 查看。

目录