初始化客户端

更新时间: 2023-11-01 13:52:45

OTSClient是表格存储服务的客户端,它为调用者提供了一系列的方法,可以用来操作表、读写单行数据、读写多行数据等。使用Java SDK发起表格存储的请求,您需要初始化一个OTSClient实例,并根据需要修改ClientConfiguration的默认配置项。如果要使用时序模型,您需要初始化TimeseriesClient。

注意事项

  • 如果要使用HTTPs协议访问表格存储资源,请升级Java环境到Java 7后即可。

  • 表格存储Java SDK支持使用多线程。使用多线程时,建议共用一个OTSClient对象。

准备工作

初始化Client前,您需要完成配置访问密钥、获取实例Endpoint和安装表格存储Java SDK的准备工作。

配置访问密钥

要接入阿里云的表格存储服务,您需要拥有一个有效的访问密钥进行签名认证。目前支持如下三种方式获取AccessKey。为了保证访问密钥安全,请根据使用的操作系统将访问密钥配置到环境变量。

  1. 获取访问密钥。

    重要

    为避免阿里云账号泄露AccessKey带来的安全风险,建议您通过RAM用户来完成授权和AccessKey的创建。

    获取方式

    操作

    阿里云账号的AccessKey ID和AccessKey Secret

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

    2. 创建AccessKey ID和AccessKey Secret。具体操作,请参见获取AccessKey

    被授予访问表格存储权限RAM用户的AccessKey ID和AccessKey Secret

    1. 使用阿里云账号前往访问控制RAM,创建一个新的RAM用户或者使用已经存在的RAM用户。

    2. 使用阿里云账号授予RAM用户访问表格存储的权限。具体操作,请参见通过RAM Policy为RAM用户授权

    3. 为RAM用户授权后,即可使用RAM用户的AccessKey ID和AccessKey Secret访问。具体操作,请参见获取AccessKey

    从STS获取的临时访问凭证

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

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

  2. 配置环境变量。

    • Linux和macOS系统配置方法

      执行如下命令配置环境变量。其中<access_key_id>请替换为已准备好的AccessKey ID,<access_key_secret>请替换为对应的AccessKey Secret。

      export OTS_AK_ENV=<access_key_id>
      export OTS_SK_ENV=<access_key_secret>
    • Windows系统配置方法

      新建环境变量文件,并在文件中添加环境变量OTS_AK_ENV和OTS_SK_ENV,然后环境变量分别配置为已准备好的AccessKey ID和AccessKey Secret,最后重启Windows系统使配置生效。

获取实例Endpoint

创建实例后,您需要获取实例域名地址(Endpoint)用于后续通过Endpoint访问实例。

Endpoint是阿里云表格存储服务各个实例的域名地址,例如https://sun.cn-hangzhou.ots.aliyuncs.com,表示使用HTTPS协议通过公网网络访问华东1(杭州)地域的sun实例。更多信息,请参见服务地址

重要

除了公网可以访问外,也支持私网地址。

  1. 如果未开通表格存储服务,请进行开通。具体操作,请参见开通表格存储服务

  2. 创建实例。具体操作,请参见创建实例

  3. 创建实例后获取实例的Endpoint。

    1. 登录表格存储控制台

    2. 概览页面,单击实例名称。

    3. 实例详情页签的实例访问地址区域即可查看该实例的服务地址(Endpoint)。

      fig_endpoint

安装表格存储Java SDK

具体操作,请参见安装

初始化Client

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

表格存储的SDK提供了SyncClient和AsyncClient两种Client,分别对应同步接口和异步接口。同步接口调用完毕后请求即执行完成,使用方便,用户可以先使用同步接口了解表格存储的各种功能。异步接口相比同步接口更加灵活,如果对性能有一定需求,可以在使用异步接口和使用多线程之间做一些取舍。

说明

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

获取到AccessKey ID和AccessKey Secret后,您可以按照如下示例代码初始化Client。

重要

阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。本示例以将AccessKey保存在环境变量中来实现身份验证为例介绍。

使用默认配置创建SyncClient

final String endPoint = ""; 
String accessKeyId = System.getenv("OTS_AK_ENV");
String accessKeySecret = System.getenv("OTS_SK_ENV");
final String instanceName = "";
SyncClient client = new SyncClient(endPoint, accessKeyId, accessKeySecret, instanceName);                        

配置参数说明请参见下表。

参数

示例

说明

endPoint

https://myinstance.cn-hangzhou.ots.aliyuncs.com

实例的服务地址。

accessKeyId

System.getenv("OTS_AK_ENV")

通过环境变量获取。请确保已配置相应环境变量。

accessKeySecret

System.getenv("OTS_SK_ENV")

instanceName

myinstance

实例名称。更多信息,请参见实例

使用自定义配置创建SyncClient

// ClientConfiguration提供了很多配置项,以下只列举部分。
ClientConfiguration clientConfiguration = new ClientConfiguration();
// 设置建立连接的超时时间。单位为毫秒。
clientConfiguration.setConnectionTimeoutInMillisecond(5000);
// 设置socket超时时间。单位为毫秒。
clientConfiguration.setSocketTimeoutInMillisecond(5000);
// 设置重试策略。如果不设置,则采用默认的重试策略。
clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy());
SyncClient client = new SyncClient(endPoint, accessKeyId, accessKeySecret, instanceName, clientConfiguration);

初始化TimeseriesClient

如果要使用时序模型,请初始化TimeseriesClient,时序模型需要初始化单独的Client。

表格存储的SDK提供了TimeseriesClient和AsyncTimeseriesClient两种TimeseriesClient,分别对应同步接口和异步接口。

获取到AccessKey ID和AccessKey Secret后,您可以按照如下示例代码初始化TimeseriesClient。

使用默认配置创建TimeseriesClient

final String endPoint = "";
String accessKeyId = System.getenv("OTS_AK_ENV");
String accessKeySecret = System.getenv("OTS_SK_ENV");
final String instanceName = "";
TimeseriesClient client = new TimeseriesClient(endPoint, accessKeyId, accessKeySecret, instanceName);

配置参数说明请参见下表。

参数

示例

说明

endPoint

https://myinstance.cn-hangzhou.ots.aliyuncs.com

实例的服务地址。

accessKeyId

System.getenv("OTS_AK_ENV")

通过环境变量获取。请确保已配置相应环境变量。

accessKeySecret

System.getenv("OTS_SK_ENV")

instanceName

myinstance

实例名称。更多信息,请参见实例

使用自定义配置创建TimeseriesClient

// ClientConfiguration提供了很多配置项,以下只列举部分。
ClientConfiguration clientConfiguration = new ClientConfiguration();
// 设置建立连接的超时时间。单位为毫秒。
clientConfiguration.setConnectionTimeoutInMillisecond(5000);
// 设置socket超时时间。单位为毫秒。
 clientConfiguration.setSocketTimeoutInMillisecond(5000);
// 设置重试策略。如果不设置,则采用默认的重试策略。
clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy());
TimeseriesClient client = new TimeseriesClient(endPoint, accessKeyId, accessKeySecret, instanceName, clientConfiguration);
阿里云首页 表格存储 相关技术圈