全部产品
阿里云办公

初始化

更新时间:2018-03-19 11:21:41

表格存储的客户端为调用者提供了一系列的方法,可以用来操作表、单行数据、多行数据等。

确定Endpoint

Endpoint是阿里云Table Store服务在各个区域的域名地址,目前支持下列形式。

示例 描述
http://sun.cn-hangzhou.ots.aliyuncs.com HTTP 协议,公网网络访问杭州区域的 sun 实例。
https://sun.cn-hangzhou.ots.aliyuncs.com HTTPS 协议,公网网络访问杭州区域的 sun 实例。

说明:

  • 表格存储支持公网访问,也支持私网地址。
  • 您可以登录表格存储控制台,进入实例详情页,实例访问地址即是该实例的 Endpoint。

配置密钥

要接入阿里云表格存储服务,您需要拥有一个有效的访问密钥进行签名认证。目前支持下面三种方式:

  • 主帐号的 AccessKeyId 和 AccessKeySecret。创建步骤如下:

    1. 在阿里云官网注册阿里云帐号

    2. 登录 AccessKey 管理控制台创建 AccessKeyId 和 AccessKeySecret。

  • 被授予访问表格存储权限的子帐号的 AccessKeyId 和 AccesskeySecret。创建步骤如下:

    1. 使用主帐号前往访问控制 RAM,创建一个新的子帐号或者使用已经存在的子帐号。

    2. 使用主帐号授予子帐号访问表格存储的权限。

    3. 子帐号被授权后,就可以使用子帐号的 AccessKeyId 和 AccessKeySecret 访问了。

  • 临时访问的 STS token。获取步骤如下:

    1. 应用的服务器通过访问 RAM/STS 服务,获取一个临时的 AccesskeyId、AccesskeySecret 和 token,发送给使用方。

    2. 使用方使用上述临时密钥访问表格存储服务。

新建Client

用户使用表格存储的 SDK 时,必须首先构造一个 Client,通过调用这个 Client 的接口来访问表格存储服务,Client 的接口与表格存储提供的 RESTful API 是一致的。

Client类型

表格存储 C++ SDK 提供两种 Client,SyncClient 和 AsyncClient,分别对应同步接口异步接口

  • 同步接口:调用完毕后请求即执行完成,使用方便,用户可以先使用同步接口了解表格存储的各种功能。

  • 异步接口:相比同步接口更加灵活,如果对性能有一定需求,可以在使用异步接口和使用多线程之间做一些取舍。

说明:不管是 SyncClient 还是 AsyncClient,都是线程安全的,且内部会自动管理线程和管理连接资源。不需要为每个线程创建一个Client,也不需要为每个请求创建一个Client,全局创建一个 Client 即可。

同步接口

  • 直接创建(即使用Table Store Endpoint新建Client)

    1. Endpoint ep("YourEndpoint", "YourInstance");
    2. Credential cr("AccessKeyId", "AccessKeySecret");
    3. ClientOptions opts;
    4. SyncClient* client = NULL;
    5. Optional<OTSError> res = SyncClient::create(client, ep, cr, opts);

    说明:建议您避免使用主账号的AcceessKey来访问表格存储,推荐使用临时令牌或者子账号的AccessKey。如果使用临时令牌STS,上述代码中的Credential对象需要修改为:Credential cr("AccessKeyId", "AccessKeySecret", "SecurityToken");

    ClientOptions中包含的配置项说明如下,您可以使用默认值,也可以自定义参数。

    配置项描述
    mMaxConnections最大连接数,同时也是最大并发请求数。SDK和表格存储服务端保持着长连接。每次有一个新的请求都会从闲置的连接里随机挑一个来发送请求。
    mConnectTimeout连接超时时间。考虑到DNS解析的时间,建议连接超时时间不短于10秒。
    mRequestTimeout请求超时时间。
    mRetryStrategy重试策略。默认的重试策略会在10秒内重试失败的幂等请求。您可以定义自己的重试策略。
    mLogger日志记录器。默认的日志记录器输出到标准错误上。建议您定义自己的日志记录器。
    mActors线程池。用于执行您回调的线程池。默认10根线程。
  • 从AsyncClient创建

    1. AsyncClient& async = ...;
    2. SyncClient* sync = SyncClient::create(async);

异步接口

异步接口Client的创建和使用,请参见异步接口

多线程

支持多线程。使用多线程时,建议共用一个客户端对象。

本文导读目录