简介
本文档提供关于对象的删除操作相关的 API 概览以及 SDK 示例代码。
API | 操作名 | 操作描述 |
删除单个对象 | 在存储桶中删除指定对象 | |
删除多个对象 | 在存储桶中批量删除对象 |
删除单个对象
功能说明
删除指定的对象(DELETE Object)。
示例代码
try{// 存储桶名称,此处填入格式必须为 bucketname-APPID, 其中 APPID 获取参考 https://console.cloud.tencent.com/developerstring 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());}
说明
删除多个对象
功能说明
批量删除多个对象(DELETE Multiple Objects)。
示例代码
try{// 存储桶名称,此处填入格式必须为 bucketname-APPID, 其中 APPID 获取参考 https://console.cloud.tencent.com/developerstring bucket = "examplebucket-1250000000";DeleteMultiObjectRequest request = new DeleteMultiObjectRequest(bucket);//设置返回结果形式request.SetDeleteQuiet(false);//对象keystring 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());}
说明
指定前缀删除(删除文件夹)
功能说明
指定前缀删除可以实现类似于删除目录的功能。
对象存储中本身是没有目录的概念的,为了满足用户使用习惯,用户可通过分隔符/来模拟“目录”。
删除目录及其文件这一场景,实际在 COS 上相当于删除一批有着同样前缀的对象。目前 COS .NET SDK 没有提供一个接口去实现这样的操作,但是可以通过组合查询对象列表加上批量删除对象的基本操作,达到删除文件夹下对象的目的。
示例代码
try{String nextMarker = null;// 循环请求直到没有下一页数据do{// 存储桶名称,此处填入格式必须为 bucketname-APPID, 其中 APPID 获取参考 https://console.cloud.tencent.com/developerstring 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());}
说明