详情页标题前

腾讯云对象存储删除对象

详情页1

简介

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

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

简单操作

简单操作由 COSClient 类型发起请求,使用简单操作之前必须先创建一个 COSClient 实例。COSClient 实例是并发安全的,这里推荐一个进程只创建一个 COSClient 实例,当不会再通过这个实例发起请求的时候,再选择关闭这个实例。

创建 COSClient

调用 COS 的接口之前,必须先创建一个 COSClient 的实例。

// 创建 COSClient 实例,这个实例用来后续调用请求COSClient createCOSClient() {    // 设置用户身份信息。    // SECRETID 和 SECRETKEY 请登录访问管理控制台 https://console.cloud.tencent.com/cam/capi 进行查看和管理    String secretId = System.getenv("secretId");//用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140    String secretKey = System.getenv("secretKey");//用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140    COSCredentials cred = new BasicCOSCredentials(secretId, secretKey);
// ClientConfig 中包含了后续请求 COS 的客户端设置: ClientConfig clientConfig = new ClientConfig();
// 设置 bucket 的地域 // COS_REGION 请参见 https://cloud.tencent.com/document/product/436/6224 clientConfig.setRegion(new Region("COS_REGION"));
// 设置请求协议, http 或者 https // 5.6.53 及更低的版本,建议设置使用 https 协议 // 5.6.54 及更高版本,默认使用了 https clientConfig.setHttpProtocol(HttpProtocol.https);
// 以下的设置,是可选的:
// 设置 socket 读取超时,默认 30s clientConfig.setSocketTimeout(30*1000); // 设置建立连接超时,默认 30s clientConfig.setConnectionTimeout(30*1000);
// 如果需要的话,设置 http 代理,ip 以及 port clientConfig.setHttpProxyIp("httpProxyIp"); clientConfig.setHttpProxyPort(80);
// 生成 cos 客户端。 return new COSClient(cred, clientConfig);}

使用临时密钥创建 COSClient

如果要使用临时密钥请求 COS,则需要用临时密钥创建 COSClient。
本 SDK 并不能生成临时密钥,而需要使用额外的操作来生成,详情请参见
临时密钥生成


// 创建 COSClient 实例,这个实例用来后续调用请求COSClient createCOSClient() { // 这里需要已经获取到临时密钥的结果。 // 临时密钥的生成参见 https://cloud.tencent.com/document/product/436/14048#cos-sts-sdk String tmpSecretId = "TMPSECRETID"; String tmpSecretKey = "TMPSECRETKEY"; String sessionToken = "SESSIONTOKEN";
COSCredentials cred = new BasicSessionCredentials(tmpSecretId, tmpSecretKey, sessionToken);
// ClientConfig 中包含了后续请求 COS 的客户端设置: ClientConfig clientConfig = new ClientConfig();
// 设置 bucket 的地域 // COS_REGION 请参见 https://cloud.tencent.com/document/product/436/6224 clientConfig.setRegion(new Region("COS_REGION"));
// 设置请求协议, http 或者 https // 5.6.53 及更低的版本,建议设置使用 https 协议 // 5.6.54 及更高版本,默认使用了 https clientConfig.setHttpProtocol(HttpProtocol.https);
// 以下的设置,是可选的:
// 设置 socket 读取超时,默认 30s clientConfig.setSocketTimeout(30*1000); // 设置建立连接超时,默认 30s clientConfig.setConnectionTimeout(30*1000);
// 如果需要的话,设置 http 代理,ip 以及 port clientConfig.setHttpProxyIp("httpProxyIp"); clientConfig.setHttpProxyPort(80);
// 生成 cos 客户端。 return new COSClient(cred, clientConfig);}

删除对象

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

方法原型

public void deleteObject(String bucketName, String key)            throws CosClientException, CosServiceException;

请求示例

// 调用 COS 接口之前必须保证本进程存在一个 COSClient 实例,如果没有则创建// 详细代码参见本页:简单操作 -> 创建 COSClientCOSClient cosClient = createCOSClient();
// 存储桶的命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式String bucketName = "examplebucket-1250000000";// 对象键(Key)是对象在存储桶中的唯一标识。详情请参见 [对象键](https://cloud.tencent.com/document/product/436/13324)String key = "exampleobject";
try { cosClient.deleteObject(bucketName, key);} catch (CosServiceException e) { e.printStackTrace();} catch (CosClientException e) { e.printStackTrace();}
// 确认本进程不再使用 cosClient 实例之后,关闭即可cosClient.shutdown();

参数说明

参数名称 描述 类型
bucketName Bucket 的命名格式为 BucketName-APPID ,详情请参见 命名规范 String
key 对象键(Key)是对象在存储桶中的唯一标识。例如,在对象的访问域名 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/picture.jpg 中,对象键为 doc/picture.jpg,详情请参见 对象键 String

返回结果说明

成功:无返回值。失败:发生错误(如身份认证失败),抛出异常 CosClientException 或者 CosServiceException。详情请参见 异常处理

批量删除对象

删除指定的一批对象(DELETE Multiple Objects)。

方法原型

public DeleteObjectsResult deleteObjects(DeleteObjectsRequest deleteObjectsRequest)    throws MultiObjectDeleteException, CosClientException, CosServiceException;

请求示例

// 调用 COS 接口之前必须保证本进程存在一个 COSClient 实例,如果没有则创建// 详细代码参见本页:简单操作 -> 创建 COSClientCOSClient cosClient = createCOSClient();
// 存储桶的命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式String bucketName = "examplebucket-1250000000";
DeleteObjectsRequest deleteObjectsRequest = new DeleteObjectsRequest(bucketName);// 设置要删除的key列表, 最多一次删除1000个ArrayList keyList = new ArrayList();// 传入要删除的文件名// 注意文件名不允许以正斜线/或者反斜线\开头,例如:// 存储桶目录下有a/b/c.txt文件,如果要删除,只能是 keyList.add(new KeyVersion("a/b/c.txt")), 若使用 keyList.add(new KeyVersion("/a/b/c.txt"))会导致删除不成功keyList.add(new KeyVersion("aaa"));keyList.add(new KeyVersion("bbb"));keyList.add(new KeyVersion("ccc"));deleteObjectsRequest.setKeys(keyList);
try { DeleteObjectsResult deleteObjectsResult = cosClient.deleteObjects(deleteObjectsRequest); List deleteObjectResultArray = deleteObjectsResult.getDeletedObjects();} catch (MultiObjectDeleteException mde) { // 如果部分删除成功部分失败, 返回 MultiObjectDeleteException List deleteObjects = mde.getDeletedObjects(); List deleteErrors = mde.getErrors();} catch (CosServiceException e) { e.printStackTrace();} catch (CosClientException e) { e.printStackTrace();}
// 确认本进程不再使用 cosClient 实例之后,关闭即可cosClient.shutdown();

参数说明

参数名称 描述 类型
deleteObjectsRequest 请求 DeleteObjectsRequest

Request 成员说明:

参数名称 描述 类型
bucketName Bucket 的命名格式为 BucketName-APPID ,详情请参见 命名规范 String
quiet 指明删除的返回结果方式,可选值为 true,false,默认为 false。设置为 true 只返回失败的错误信息,设置为 false 时返回成功和失败的所有信息 boolean
keys 对象路径列表,对象的版本号为可选 List

DeleteObjectsRequest.KeyVersion 成员说明:

参数名称 描述 类型
key 对象键(Key)是对象在存储桶中的唯一标识。例如,在对象的访问域名 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/picture.jpg 中,对象键为 doc/picture.jpg,详情请参见 对象键 String
version 在开启存储桶版本控制时,指定被删除对象的版本号,可选 String

返回结果说明

成功:无返回值。失败:发生错误(如身份认证失败),抛出异常 CosClientException 或者 CosServiceException,详情请参见 异常处理

批量删除指定版本的对象

删除指定的一批带版本号的对象(DELETE Multiple Objects)。说明 需要对应的 bucket 开启版本控制。

方法原型

public DeleteObjectsResult deleteObjects(DeleteObjectsRequest deleteObjectsRequest)    throws MultiObjectDeleteException, CosClientException, CosServiceException;

请求示例

// 调用 COS 接口之前必须保证本进程存在一个 COSClient 实例,如果没有则创建// 详细代码参见本页:简单操作 -> 创建 COSClientCOSClient cosClient = createCOSClient();
// 存储桶的命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式String bucketName = "examplebucket-1250000000";
DeleteObjectsRequest deleteObjectsRequest = new DeleteObjectsRequest(bucketName);// 设置要删除的 key 列表, 最多一次删除1000个ArrayList keyList = new ArrayList();// 传入要删除的文件名和对应的版本号// 版本号可以通过:列出对象 -> 简单操作 -> 列出对象历史版本 查到keyList.add(new KeyVersion("aaa", "aaa versionId"));keyList.add(new KeyVersion("bbb", "bbb versionId"));keyList.add(new KeyVersion("ccc", "ccc versionId"));deleteObjectsRequest.setKeys(keyList);
try { DeleteObjectsResult deleteObjectsResult = cosClient.deleteObjects(deleteObjectsRequest); List deleteObjectResultArray = deleteObjectsResult.getDeletedObjects();} catch (MultiObjectDeleteException mde) { // 如果部分删除成功部分失败, 返回 MultiObjectDeleteException List deleteObjects = mde.getDeletedObjects(); List deleteErrors = mde.getErrors();} catch (CosServiceException e) { e.printStackTrace();} catch (CosClientException e) { e.printStackTrace();}
// 确认本进程不再使用 cosClient 实例之后,关闭即可cosClient.shutdown();

参数说明

参数名称 描述 类型
deleteObjectsRequest 请求 DeleteObjectsRequest

Request 成员说明:

参数名称 描述 类型
bucketName Bucket 的命名格式为 BucketName-APPID ,详情请参见 命名规范 String
quiet 指明删除的返回结果方式,可选值为 true,false,默认为 false。设置为 true 只返回失败的错误信息,设置为 false 时返回成功和失败的所有信息 boolean
keys 对象路径列表,对象的版本号为可选 List

DeleteObjectsRequest.KeyVersion 成员说明:

参数名称 描述 类型
key 对象键(Key)是对象在存储桶中的唯一标识。例如,在对象的访问域名 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/picture.jpg 中,对象键为 doc/picture.jpg,详情请参见 对象键 String
version 在开启存储桶版本控制时,指定被删除对象的版本号,可选 String

返回结果说明

成功:无返回值。失败:发生错误(如身份认证失败),抛出异常 CosClientException 或者 CosServiceException,详情请参见 异常处理

删除目录

删除目录操作包括两个步骤:列出要删除的目录下的所有对象,使用批量删除对象。

// 列目录实现参考:列出对象 -> 简单操作 -> 列出目录下的对象和子目录// 批量删除实现参考本页:批量删除对象
// 调用 COS 接口之前必须保证本进程存在一个 COSClient 实例,如果没有则创建// 详细代码参见本页:简单操作 -> 创建 COSClientCOSClient cosClient = createCOSClient();
// 存储桶的命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式String bucketName = "examplebucket-1250000000";
// 要删除的目录,这里是相对于 bucket 的路径String delDir = "exampledir";
ListObjectsRequest listObjectsRequest = new ListObjectsRequest();// 设置 bucket 名称listObjectsRequest.setBucketName(bucketName);// prefix 表示列出的对象名以 prefix 为前缀// 这里填要列出的目录的相对 bucket 的路径listObjectsRequest.setPrefix(delDir);// 设置最大遍历出多少个对象, 一次 listobject 最大支持1000listObjectsRequest.setMaxKeys(1000);
// 保存每次列出的结果ObjectListing objectListing = null;
do { try { objectListing = cosClient.listObjects(listObjectsRequest); } catch (CosServiceException e) { e.printStackTrace(); return; } catch (CosClientException e) { e.printStackTrace(); return; }
// 这里保存列出的对象列表 List cosObjectSummaries = objectListing.getObjectSummaries();
ArrayList delObjects = new ArrayList();
for (COSObjectSummary cosObjectSummary : cosObjectSummaries) { delObjects.add(new KeyVersion(cosObjectSummary.getKey())); }
DeleteObjectsRequest deleteObjectsRequest = new DeleteObjectsRequest(bucketName);
deleteObjectsRequest.setKeys(delObjects);
try { DeleteObjectsResult deleteObjectsResult = cosClient.deleteObjects(deleteObjectsRequest); List deleteObjectResultArray = deleteObjectsResult.getDeletedObjects(); } catch (MultiObjectDeleteException mde) { // 如果部分删除成功部分失败, 返回 MultiObjectDeleteException List deleteObjects = mde.getDeletedObjects(); List deleteErrors = mde.getErrors(); } catch (CosServiceException e) { e.printStackTrace(); return; } catch (CosClientException e) { e.printStackTrace(); return; }
// 标记下一次开始的位置 String nextMarker = objectListing.getNextMarker(); listObjectsRequest.setMarker(nextMarker);} while (objectListing.isTruncated());



对象存储官网1折活动,限时活动,即将结束,速速收藏
同尘科技腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

转转请注明出处:https://www.yunxiaoer.com/145753.html

(0)
上一篇 2023年12月9日
下一篇 2023年12月9日
详情页2

相关推荐

  • 腾讯云对象存储图片文字识别(OCR)

    简介 本文档提供关于通用文字识别的 API 概览和 SDK 示例代码。 API 操作描述 通用文字识别 通用文字识别功能将图片上的文字内容,智能识别为可编辑的文本。 通用文字识别 功能说明 通用文字识别功能(Optical Character Recognition,OCR)基于行业前沿的深度学习技术,将图片上的文字内容,智能识别为可编辑的文本,可应用于随手…

    腾讯云 2023年12月9日
  • 腾讯云对象存储日志管理

    简介 本文档提供关于日志管理的 API 概览以及 SDK 示例代码。 API 操作名 操作描述 PUT Bucket logging 设置日志管理 为源存储桶开启日志记录 GET Bucket logging 查询日志管理 查询源存储桶的日志配置信息 设置日志管理 功能说明 PUT Bucket Logging 用于为源存储桶开启日志记录,将源存储桶的访问日…

    腾讯云 2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 腾讯云轻量应用服务器设置允许多用户远程登录 Windows 实例云小二

    操作场景 本文档以使用 Windows Server 2016 系统镜像的轻量应用服务器为例,指导您配置多用户远程登录 Windows 实例。注意微软提供的多用户远程登录功能试用期为120天,若未购买多用户登录授权(RDS CALs),则试用期结束后会导致无法通过远程桌面登录轻量应用服务器,只能通过 mstsc /admin 命令登录。Windows Ser…

    2023年12月9日
  • 腾讯云轻量应用服务器内网互联云小二

    操作场景 轻量应用服务器使用腾讯云自动分配的 私有网络 VPC 进行网络隔离,默认情况下内网不与云服务器 CVM、云数据库等其他处于私有网络 VPC 中的腾讯云资源内网互通,需通过关联云联网实现。该功能主要适用于以下业务场景:轻量应用服务器访问云服务器 CVM轻量应用服务器访问云数据库说明同账号下同一地域内的不同轻量应用服务器默认内网互通。更多轻量应用服务器…

    2023年12月9日
  • 腾讯云对象存储功能概览

    对象存储(Cloud Object Storage,COS)主要提供以下功能: 操作 功能 说明 存储桶操作 支持创建、查询、删除、清空存储桶,具体操作请参见存储桶管理目录下的文档,例如 创建存储桶。 对象操作 多种存储类型:根据访问频度的高低和容灾程度高低,COS 提供多种对象的存储类型,包括标准存储(多 AZ)、低频存储(多 AZ)、智能分层存储、标准存…

    腾讯云 2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。