详情页标题前

腾讯云对象存储判断对象是否存在

详情页1

简介

文档提供快捷查询存储桶中某个对象是否存在的示例代码。示例代码实际调用了 HEAD Object COS API,是该接口的简化版。HEAD Object 除了检查对象是否存在,主要功能为返回对象元数据。如需查看包含了 HEAD Object 完整功能的 SDK 接口,请参见 查询对象元数据

API 操作名 操作描述
HEAD Object 查询对象元数据 查询对象的元数据信息

简单操作

简单操作由 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);}

检查对象是否存在

通过调用查询对象元数据接口,来检查一个对象是否存在。

方法原型

public boolean doesObjectExist(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 { boolean objectExists = cosClient.doesObjectExist(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

返回结果说明

成功:返回 boolean 类型, true 代表存在,false 代表不存在。失败:发生错误(如身份认证失败),抛出异常 CosClientException 或者 CosServiceException。详情请参见 异常处理
对象存储官网1折活动,限时活动,即将结束,速速收藏
同尘科技腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

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

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

相关推荐

  • 腾讯云对象存储结构体

    MediaWorkflow_Topology_Nodes_Start_Input 节点名称(关键字) 描述 类型 是否必选 限制 ObjectPrefix Object 前缀 String 是 无 QueueId 队列 ID String 是 无 PicProcessQueueId 图片处理队列 ID String 当存在图片处理节点时必选 无 Spee…

    腾讯云 2023年12月9日
  • 腾讯云Serverless SSR常见问题-云淘

    什么是云函数的层? 简单来说,层就是把项目中不经常变更的部分独立出来,云函数运行时再把层包含的文件挂载到云函数的执行环境中。详细说明可参考云函数的 层管理 文档。 说明Next.js 项目的 node_modules 会比较大,项目稳定后,部署不需要每次都更新 node_modules。 把 node_modules 部署为层,每次部署只需要上传业务代码,部…

    腾讯云 2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 负载均衡ALB带宽没有被占满,但是前端包加载很慢,而且ECS负载很低,请问是什么原因?-云小二-阿里云

    负载均衡ALB带宽没有被占满,但是前端包加载很慢,而且ECS负载很低,请问是什么原因? 以下为热心网友提供的参考意见 即使负载均衡器(ALB)的带宽没有被占满,前端包加载也可能很慢。以下是一些可能的原因:1.网络延迟:尽管带宽没有满,但如果网络延迟较高,可能会导致包加载变慢。这可能是由于网络设备(如路由器、交换机)的延迟,或者由于网络路径上的高延迟。2.DN…

    阿里云 2023年12月28日
  • Flink现在产品内包括了alink的功能吗?可以调用机器学习的api吗?-云小二-阿里云

    Flink现在产品内包括了alink的功能吗?可以调用机器学习的api吗? 以下为热心网友提供的参考意见 参考https://help.aliyun.com/zh/pai/user-guide/flink-resource-management?spm=a2c4g.11186623.0.i4 此回答整理自钉群“实时计算Flink产品交流群”

    2023年12月28日
  • 腾讯云云点播音视频审核完成

    事件名称 ReviewAudioVideoComplete 事件说明 当 App 配置了事件通知,并且在音视频审核完成后,App 后台即可通过“普通回调”或“可靠回调”的方式获取该事件通知。事件通知内容为 ReviewAudioVideoTask 结构。 示例 普通回调 如果选择普通回调模式,则回调 URL 会接收到来自云点播的 HTTP 请求。请求采用 P…

    腾讯云 2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

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

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