简介
本文档提供关于对象的删除操作相关的 API 概览以及 SDK 示例代码。
API | 操作名 | 操作描述 |
DELETE Object | 删除单个对象 | 在存储桶中删除指定对象 |
DELETE Multiple Objects | 删除多个对象 | 在存储桶中批量删除对象 |
SDK API 参考
SDK 所有接口的具体参数与方法说明,请参考 SDK API 参考。
删除单个对象
功能说明
删除指定的对象(DELETE Object)。
示例代码
String bucket = "examplebucket-1250000000"; //存储桶名称,格式:BucketName-APPIDString cosPath = "exampleobject"; //对象在存储桶中的位置标识符,即对象键
DeleteObjectRequest deleteObjectRequest = new DeleteObjectRequest(bucket, cosPath);cosXmlService.deleteObjectAsync(deleteObjectRequest, new CosXmlResultListener() { @Override public void onSuccess(CosXmlRequest cosXmlRequest, CosXmlResult result) { DeleteObjectResult deleteObjectResult = (DeleteObjectResult) 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 查看。
删除多个对象
功能说明
批量删除多个对象(Delete Multi Objects)。
示例代码
// 存储桶名称,由 bucketname-appid 组成,appid 必须填入,可以在 COS 控制台查看存储桶名称。 https://console.cloud.tencent.com/cos5/bucketString bucket = "examplebucket-1250000000";List objectList = new ArrayList();objectList.add("exampleobject1"); //对象在存储桶中的位置标识符,即对象键objectList.add("exampleobject2"); //对象在存储桶中的位置标识符,即对象键
DeleteMultiObjectRequest deleteMultiObjectRequest = new DeleteMultiObjectRequest(bucket, objectList);// Quiet 模式只返回报错的 Object 信息。否则返回每个 Object 的删除结果。deleteMultiObjectRequest.setQuiet(true);cosXmlService.deleteMultiObjectAsync(deleteMultiObjectRequest, new CosXmlResultListener() { @Override public void onSuccess(CosXmlRequest cosXmlRequest, CosXmlResult result) { DeleteMultiObjectResult deleteMultiObjectResult = (DeleteMultiObjectResult) 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 查看。
删除目录
功能说明
COS 上的文件夹概念是以 /
分隔对象名,形成类似文件系统的路径,从而模拟出来的。所以删除文件夹的操作,在 COS 上相当于删除一批有着同样前缀的对象。例如:文件夹 prefix/
,代表的是以 prefix/
为前缀的所有对象,所以删除 prefix/
意味着删除以 prefix/
为前缀的所有对象。目前 COS Android SDK 没有提供一个接口去支持这样的操作,但是可以通过基本操作的组合,达到同样的效果。
示例代码
// 存储桶名称,由 bucketname-appid 组成,appid 必须填入,可以在 COS 控制台查看存储桶名称。 https://console.cloud.tencent.com/cos5/bucketString bucket = "examplebucket-1250000000";String prefix = "folder1/"; //指定前缀
GetBucketRequest getBucketRequest = new GetBucketRequest(bucket);getBucketRequest.setPrefix(prefix);
// prefix 表示要删除的文件夹getBucketRequest.setPrefix(prefix);// 设置最大遍历出多少个对象, 一次 listobject 最大支持1000getBucketRequest.setMaxKeys(1000);GetBucketResult getBucketResult = null;
do { try { getBucketResult = cosXmlService.getBucket(getBucketRequest); List contents = getBucketResult.listBucket.contentsList; DeleteMultiObjectRequest deleteMultiObjectRequest = new DeleteMultiObjectRequest(bucket); for (ListBucket.Contents content : contents) { deleteMultiObjectRequest.setObjectList(content.key); } cosXmlService.deleteMultiObject(deleteMultiObjectRequest); getBucketRequest.setMarker(getBucketResult.listBucket.nextMarker); } catch (CosXmlClientException e) { e.printStackTrace(); return; } catch (CosXmlServiceException e) { e.printStackTrace(); return; }} while (getBucketResult.listBucket.isTruncated);
说明更多完整示例,请前往 GitHub 查看。
对象存储官网1折活动,限时活动,即将结束,速速收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠
转转请注明出处:https://www.yunxiaoer.com/145363.html