tencent cloud

文档反馈

删除对象

最后更新时间:2022-01-13 12:38:27

    简介

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

    API 操作名 操作描述
    DELETE Object 删除单个对象 在存储桶中删除指定对象
    DELETE Multiple Objects 删除多个对象 在存储桶中批量删除对象

    SDK API 参考

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

    删除单个对象

    功能说明

    删除指定的对象(DELETE Object)。

    示例代码

    try
    {
    // 存储桶名称,此处填入格式必须为 bucketname-APPID, 其中 APPID 获取参考 https://console.intl.cloud.tencent.com/developer
    string bucket = "examplebucket-1250000000";
    string key = "exampleobject"; //对象键
    DeleteObjectRequest request = new DeleteObjectRequest(bucket, key);
    //执行请求
    DeleteObjectResult result = cosXml.DeleteObject(request);
    //请求成功
    Console.WriteLine(result.GetResultInfo());
    }
    catch (COSXML.CosException.CosClientException clientEx)
    {
    //请求失败
    Console.WriteLine("CosClientException: " + clientEx);
    }
    catch (COSXML.CosException.CosServerException serverEx)
    {
    //请求失败
    Console.WriteLine("CosServerException: " + serverEx.GetInfo());
    }
    
    说明:

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

    删除多个对象

    功能说明

    批量删除多个对象(DELETE Multiple Objects)。

    示例代码

    try
    {
    // 存储桶名称,此处填入格式必须为 bucketname-APPID, 其中 APPID 获取参考 https://console.intl.cloud.tencent.com/developer
    string bucket = "examplebucket-1250000000";
    DeleteMultiObjectRequest request = new DeleteMultiObjectRequest(bucket);
    //设置返回结果形式
    request.SetDeleteQuiet(false);
    //对象key
    string key = "exampleobject"; //对象键
    List<string> objects = new List<string>();
    objects.Add(key);
    request.SetObjectKeys(objects);
    //执行请求
    DeleteMultiObjectResult result = cosXml.DeleteMultiObjects(request);
    //请求成功
    Console.WriteLine(result.GetResultInfo());
    }
    catch (COSXML.CosException.CosClientException clientEx)
    {
    //请求失败
    Console.WriteLine("CosClientException: " + clientEx);
    }
    catch (COSXML.CosException.CosServerException serverEx)
    {
    //请求失败
    Console.WriteLine("CosServerException: " + serverEx.GetInfo());
    }
    
    说明:

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

    指定前缀删除(删除文件夹)

    功能说明

    指定前缀删除可以实现类似于删除目录的功能。
    对象存储中本身是没有目录的概念的,为了满足用户使用习惯,用户可通过分隔符/来模拟“目录”。
    删除目录及其文件这一场景,实际在 COS 上相当于删除一批有着同样前缀的对象。目前 COS .NET SDK 没有提供一个接口去实现这样的操作,但是可以通过组合查询对象列表加上批量删除对象的基本操作,达到删除文件夹下对象的目的。

    示例代码

    try
    {
    String nextMarker = null;
     // 循环请求直到没有下一页数据
    do
    {
      // 存储桶名称,此处填入格式必须为 bucketname-APPID, 其中 APPID 获取参考 https://console.intl.cloud.tencent.com/developer
      string bucket = "examplebucket-1250000000";
      string prefix = "folder1/"; //指定前缀
      GetBucketRequest listRequest = new GetBucketRequest(bucket);
      //获取 folder1/ 下的所有对象以及子目录
      listRequest.SetPrefix(prefix);
      listRequest.SetMarker(nextMarker);
      //执行列出对象请求
      GetBucketResult listResult = cosXml.GetBucket(listRequest);
      ListBucket info = listResult.listBucket;
      // 对象列表
      List<ListBucket.Contents> objects = info.contentsList;
      // 下一页的下标
      nextMarker = info.nextMarker;
    
      DeleteMultiObjectRequest deleteRequest = new DeleteMultiObjectRequest(bucket);
      //设置返回结果形式
      deleteRequest.SetDeleteQuiet(false);
      //对象列表
      List<string> deleteObjects = new List<string>();
      foreach (var content in objects)
      {
        deleteObjects.Add(content.key);
      }
      deleteRequest.SetObjectKeys(deleteObjects);
      //执行批量删除请求
      DeleteMultiObjectResult deleteResult = cosXml.DeleteMultiObjects(deleteRequest);
      //打印请求结果
      Console.WriteLine(deleteResult.GetResultInfo());
    } while (nextMarker != null);
    }
    catch (COSXML.CosException.CosClientException clientEx)
    {
    //请求失败
    Console.WriteLine("CosClientException: " + clientEx);
    }
    catch (COSXML.CosException.CosServerException serverEx)
    {
    //请求失败
    Console.WriteLine("CosServerException: " + serverEx.GetInfo());
    }
    
    说明:

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

    联系我们

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

    技术支持

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

    7x24 电话支持