详情页标题前

腾讯云对象存储C++ SDK

详情页1

注意您目前查阅的是历史版本 SDK 文档,已不再更新和维护,我们建议您查阅新版 SDK 文档

开发准备

相关资源

Github 项目下载地址

开发环境

1. 安装 openssl 的库和头文件。2. 安装 curl 的库和头文件。3. 安装 jsoncpp 的库和头文件。4. 安装 boost 的库和头文件。5. 安装 cmake 工具。6. 登录 腾讯云控制台 获取 APPID、SecretID、SecretKey。注意1. 本 SDK 仅适用于 Linux 系统和编译环境,暂不支持 Windows 环境。2. sdk 中提供了curl 和 jsoncpp 的库以及头文件,以上库编译好后替换掉 sdk 中相应的库和头文件即可,如果以上库已经安装到系统里,也可删除 sdk 中相应的库和头文件。3. curl 默认不支持多线程环境,如果项目使用多线程,在编译 curl 执行 configure 时需指定 –enable-ares 参数来开启异步 DNS 解析,依赖 c-ares 库,如果系统没有,可到 c-ares 下载安装。4. jsoncpp 的 1.y.x 版本需要 c++11 的支持,如果编译器不支持,可以换成 0.y.x 版本。
(本版本 SDK 基于 JSON API 封装组成)

SDK 配置

直接下载 github 上提供的源代码,集成到您的开发环境。 执行下面的命令 :

cd ${cos-cpp-sdk} mkdir -p build cd build cmake .. make 

cos_demo.cpp 里面有常见 API 的例子。生成的 cos_demo 可以直接运行,生成的静态库名称为:libcossdk.a。生成的 libcossdk.a 放到您自己的工程里 lib 路径下,include 目录拷贝到自己的工程的 include 路径下。

生成签名

多次有效签名

方法原型

static string AppSignMuti(const uint64_t appId,                           const string &secretId,                           const string &secretKey,                           const uint64_t expired_time,                           const string &bucketName); 

参数说明

参数名 类型 是否必填 默认值 参数描述
appId uint64_t 项目 App ID
secretId String 用户 Secret ID
secretKey String 用户 SecretKey
expired_time uint64_t 过期时间,Unix 时间戳
bucketName String bucket 名称

返回结果说明

返回值:签名字符串

示例

uint64_t expired = time(NULL) + 60;string sign = Auth::AppSignMuti(10000000,"SecretId","SecretKey",expired,"bucketName");

单次有效签名

方法原型

static string AppSignOnce(const uint64_t appId,                           const string &secretId,                           const string &secretKey,                           const string &path,                           const string &bucketName); 

参数说明

参数名 类型 必须 默认值 参数描述
appId uint64_t 项目 App ID
secretId String 项目 SecretID
secretKey String 项目 SecretKey
bucketName String bucket名称
path String 文件路径,以斜杠开头,例如/filepath/filename,为文件在此 bucketname 下的全路径

返回值说明

返回值:签名字符串

示例

string path= "/myFloder/myFile.rar";sign = Auth::AppSignOnce(10000000, "SecretId", "SecretKey", path, bucketName);

初始化操作

初始化

接口说明:在使用 COS 操作之前,需要首先进行 COS 系统参数的设置,然后分别创建 CosConfig 以及 CosAPI 对象,COS 的操作都是基于 CosAPI 对象进行的。

配置文件

"AppID":********,"SecretID":"*********************************","SecretKey":"********************************","Region":"sh",   //COS区域, 华东园区:sh ;华南园区:gz ;华北园区:tj ;上传和下载域名均是跟此有关系,因此一定要保证正确"SignExpiredTime":360, //签名超时时间"CurlConnectTimeoutInms":180,  //http超时时间"CurlGlobalConnectTimeoutInms":360, //"UploadSliceSize":1048576, //文件分片大小,可选值有524288、1048576、2097152、3145728"IsUploadTakeSha":0, //文件上传时是否携带文件sha值,0:不携带,1:携带"DownloadDomainType":2, //下载域名类型,1:cdn,2:cos,3:innercos,4:自定义域名"SelfDomain":"",//自定义域名"UploadThreadPoolSize":5, //单文件分片上传线程池大小"AsynThreadPoolSize":2, //异步上传下载线程池大小"LogoutType":1 //日志输出类型,0:不输出,1:输出到屏幕,2输出到syslog

COS API 对象构造原型

CosConfig(const string& config_file);CosAPI(CosConfig& config);

目录操作

创建目录

接口说明:用于目录的创建,调用者可以通过此接口在指定 bucket 下创建目录。

方法原型

string CosAPI::FolderCreate(FolderCreateReq& request);        

参数说明

参数名 类型 默认值 参数描述
request FolderCreateReq 目录创建请求类型
request成员 类型 默认值 设置方法 描述
bucket string 构造函数 bucket 名称
cosPath string 构造函数 上传的目标路径
bizAttr string 空字符串 构造函数 文件夹属性

返回结果说明

通过函数返回值返回请求结果的json字符串

参数名 类型 参数描述
code Int 返回码,成功时为 0
message String 描述信息
data Array 返回数据,请参考《Restful API 创建目录》

示例

FolderCreateReq folderCreateReq(bucket,folder,folder_biz_attr);string rsp = cos.FolderCreate(folderCreateReq);

目录更新

接口说明:用于目录业务自定义属性的更新,可以通过此接口更新业务的自定义属性字段。

方法原型

string FolderUpdate(FolderUpdateReq& request);                    

参数说明

参数名 类型 默认值 参数描述
request FolderUpdateReq 目录更新请求类型
参数名 类型 默认值 设置方法 参数描述
bucket String 构造函数 bucket名称
cosPath String 构造函数 目录的全路径
bizAttr string 构造函数 文件夹属性

返回结果说明

通过函数返回值返回请求结果的json字符串

参数名 类型 参数描述
code Int 返回码,成功时为 0
message String 描述信息
data Array 返回数据,请参考《Restful API 目录更新》

示例

FolderUpdateReq folderUpdateReq(bucket,folder, folder_biz_attr);string rsp = cos.FolderUpdate(folderUpdateReq);

目录查询

接口说明:用于目录属性的查询,可以通过此接口查询目录的属性。

方法原型

string CosAPI::FolderStat(FolderStatReq& request);

参数说明

参数名 类型 默认值 参数描述
request FolderStatReq 目录查询请求类型
参数名 类型 默认值 设置方法 参数描述
bucket String 构造函数 bucket名称
cosPath String 构造函数 目录的全路径

返回结果说明

通过函数返回值返回请求结果的json字符串

参数名 类型 参数描述
code Int 返回码,成功时为0
message String 描述信息

示例

FolderStatReq folderStatReq(bucket,folder);string rsp = cos.FolderStat(folderStatReq);

目录删除

接口说明:用于目录的删除,可以通过此接口删除空目录,如果目录中存在有效文件或目录,将不能删除。

方法原型

string CosAPI::FolderDelete(FolderDeleteReq& request);

参数说明

参数名 类型 默认值 参数描述
request FolderDeleteReq 目录删除请求类型
参数名 类型 默认值 设置方法 参数描述
bucket String 构造函数 bucket名称
cosPath String 构造函数 目录的全路径

返回结果说明

通过函数返回值返回请求结果的json字符串

参数名 类型 参数描述
code Int 返回码,成功时为 0
message String 描述信息

示例

FolderDeleteReq folderDeleteReq(bucket,folder);string rsp = cos.FolderDelete(folderDeleteReq);

目录列表

接口说明:用于列举目录下文件和目录,可以通过此接口查询目录下的文件和目录属性。

方法原型

string CosAPI::FolderList(FolderListReq& request);

参数说明

参数名 类型 默认值 参数描述
request FolderListReq 目录列表请求类型
参数名 类型 默认值 设置方法 参数描述
bucket String 构造函数 bucket 名称
cosPath String 构造函数 目录的全路径
listNum int 1000 构造函数 查询数目,最大为1000
context string 空字符串 构造函数 查询上下文。查看第一页,则传空字符串;若需翻页,需要将前一页查询响应中的 context 设置到参数中

返回结果说明

通过函数返回值返回请求结果的 json 字符串

参数名 类型 是否必然返回 参数描述
code Int 返回码,成功时为 0
message String 描述信息
data Array 返回数据,请参考《Restful API 目录列表》

示例

FolderListReq folderListReq(bucket,folder);string rsp = cos.FolderList(folderListReq);

文件操作

文件上传

接口说明:文件上传,包括单文件上传和分片上传(大于8M的文件需要通过将文件内容进行分片上传)。

方法原型

string CosAPI::FileUpload(FileUploadReq& request);

参数说明

参数名 类型 默认值 参数描述
request FileUploadReq 文件上传请求类型
参数名 类型 默认值 设置方法 参数描述
bucket String 构造函数 bucket名字
srcPath String 构造函数 待上传的本地文件路径
cosPath String 构造函数 文件的全路径
bizAttr string setBizAttr() 文件属性
sliceSize int 1048576 setSliceSize() 分片大小,可选值512K/1M/2M/3M;默认1M,均需转换为字节数值

返回结果说明

通过函数返回值返回请求结果的 json 字符串

参数名 类型 是否必然返回 参数描述
code Int 返回码,成功时为 0
message String 描述信息
data Array 返回数据,请参考《Restful API 文件上传》

示例

FileUploadReq fileUploadReq(bucket, srcPath, dstPath);string rsp = cos.FileUpload(fileUploadReq);

文件更新

接口说明:用于目录业务自定义属性的更新,可以通过此接口更新业务的自定义属性字段。

方法原型

string CosAPI::FileUpdate(FileUpdateReq& request);

参数说明

参数名 类型 默认值 参数描述
request FileUpdateReq 文件更新请求类型
参数名 类型 是否必填 设置方法 参数描述
bucket String 构造函数 bucket 名称
cosPath String 构造函数 文件在对象存储服务端的路径
bizAttr string setBizAttr() 文件属性
authority string setAuthority() 文件权限,默认是继承 bucket 的权限合法取值: eInvalid(继承bucket), eWRPrivate(私有读写), eWPrivateRPublic(私有写, 公有读)
forbid int setForbid() 文件封禁标志
custom_header map setCustomHeader() 用户自定义属性

custom_header说明

参数名 类型 是否必填 参数描述
Cache-Control string 参见 HTTP 的 Cache-Control
Content-Type string 参见 HTTP 的 Content-Type
Content-Disposition string 参见 HTTP 的 Content-Language
Content-Language string 参见 HTTP 的 Content-Disposition
Content-Encoding string 参见 HTTP 的 Content-Encoding
x-cos-meta- string 自定义 HTTP 头,参数必须以 x-cos-meta-开头,值由用户定义,可设置多个

tips: custom_header 是整体覆盖式更新,即更新属性可以选择其中的某几个,如果本次只更新其中的某几个,其他的都会被抹掉。

返回结果说明

通过函数返回值返回请求结果的json字符串:

参数名 类型 是否必然返回 参数描述
code Int 返回码,成功时为 0
message String 描述信息

示例

FileUpdateReq fileUpdateReq(bucket,dstpath);fileUpdateReq.setBizAttr(file_biz_attr);fileUpdateReq.setAuthority(auth);fileUpdateReq.setForbid(0);fileUpdateReq.setCustomHeader(custom_header);string rsp = cos.FileUpdate(fileUpdateReq);

文件查询

接口说明:用于文件的查询,可以通过此接口查询文件的各项属性信息。

方法原型

string CosAPI::FileStat(FileStatReq& request)

参数说明

参数名 类型 默认值 参数描述
request FileStatReq 文件查询请求类型

FileStatReq

参数名 类型 是否必填 默认值 参数描述
bucket String bucket 名称
cosPath String 文件在对象存储服务端的全路径

返回结果说明

通过函数返回值返回请求结果的json字符串

参数名 类型 必然返回 参数描述
code Int 错误码,成功时为 0
message String 错误信息
data Array 返回数据,请参考《Restful API 文件查询》

示例

FileStatReq fileStatReq(bucket,dstpath);string rsp = cos.FileStat(fileStatReq);

文件删除

接口说明:用于文件的删除,可以通过此接口删除已经上传的文件。

方法原型

FileDeleteReq fileDeleteReq(bucket,dstpath);string rsp = cos.FileDelete(fileDeleteReq);

参数说明

参数名 类型 默认值 参数描述
request FileDeleteReq 文件删除请求类型

FolderDeleteReq

参数名 类型 是否必填 默认值 参数描述
bucket String bucket 名称
cosPath String 文件在对象存储服务端的全路径

返回结果说明

通过函数返回值返回请求结果的json字符串

参数名 类型 是否必然返回 参数描述
code Int 返回码,成功时为 0
message String 描述信息

示例

FileDeleteReq fileDeleteReq(bucket,dstpath);string rsp = cos.FileDelete(fileDeleteReq);



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

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

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

相关推荐

  • 腾讯云TDSQL-C MySQL版变配说明

    本文分别从计算节点和存储空间两部分为您介绍按量计费集群和包年包月集群变更配置的费用说明。说明TDSQL-C MySQL 版采用存储与计算分离的架构,可独立进行配置变更,无需组合变更,提高了配置变更的灵活性。集群下的实例升配时,存储空间具有上限,存储空间不能超过计算节点对应的最大存储上限,如需更大的存储空间,您可先升级当前计算节点规格,详细计算节点规格与存储空…

    腾讯云 2023年12月9日
  • 腾讯云云函数(SCF)快速部署 Nuxtjs 框架-云淘科技

    操作场景 本文将为您指导如何通过 Web Function,将您的本地 Nuxt.js SSR 项目快速部署到云端。说明本文档主要介绍控制台部署方案,您也可以通过命令行完成部署,详情请参见 通过命令行完成框架部署。 前提条件 在使用腾讯云云函数服务之前,您需要 注册腾讯云账号 并完成 实名认证。 操作步骤 模板部署:一键部署 Nuxt.js 项目 1. 登录…

    2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 腾讯云对象存储TDSQL-C 数据备份

    简介 TDSQL-C MySQL 数据备份是腾讯云对象存储(Cloud Object Storage,COS)基于 云函数(Serverless Cloud Function,SCF) 为用户提供的数据库备份功能,可以协助用户将 TDSQL-C MySQL 云数据库上的备份文件转存至对象存储进行持久化的保存,以防止数据丢失或损坏。当用户在指定存储桶配置了备份…

    腾讯云 2023年12月9日
  • 腾讯云对象存储删除图库图片

    功能描述 该接口用于删除图库图片。 授权说明 授权策略中 action 设置为 ci:DeleteImage 。查看所有 action。 服务开通 使用该功能需提前开通数据万象,并绑定存储桶。详情请参见 绑定存储桶。 使用限制 使用该接口时,请先确认相关限制条件。详情请参见 使用限制。 请求 请求示例 POST /?ci-process=ImageSearc…

    腾讯云 2023年12月9日
  • 腾讯云容器服务内存精细调度同尘科技

    内存精细调度能力提供了一系列功能,保证业务内存方面的服务质量保证。全方位提升内存表现,以及灵活限制容器对内存的使用。 功能一:异步回收 功能介绍 内存异步回收允许容器内部设置一个阈值,超过该阈值则会触发后台异步回收,保证对应 memcg 内使用维持一定量的空闲内存;对后续的内存分配提供保障,减少其进入直接内存回收的次数。 使用方式 1. 部署 QoS Age…

    腾讯云 2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

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

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