初始化OTSClient

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

OTSClient表格存储服务的客户端,它为调用者提供了一系列的方法,可以用来操作表、读写单行数据、读写多行数据等。如果要使用宽表模型的操作数据表、读写单行数据、读写多行数据等功能,您需要初始化一个OTSClient实例,并可以根据需要修改OTSClientConfig的默认配置项;如果要使用时序模型的操作时序表、检索时间线、读写时序数据等功能,您需要初始化一个TimeseriesClient实例。

注意事项

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

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

准备工作

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

获取实例Endpoint

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

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

重要

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

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

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

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

    1. 登录表格存储控制台

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

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

      image

安装表格存储Java SDK

具体操作,请参见安装表格存储Java SDK

配置访问凭证

要接入阿里云的表格存储服务,您需要拥有一个有效的访问密钥进行签名认证。具体操作,请参见配置访问凭证

初始化Client

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

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

说明

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

示例

警告

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

V4签名(推荐)

为了进一步保证用户密钥的安全,表格存储支持在初始化客户端时使用V4签名算法对用户密钥进行保护,推荐您使用V4签名进行客户端初始化。关于使用V4签名的更多信息,请参见用户密钥安全

表格存储Java SDK5.16.1版本开始支持V4签名功能。使用V4签名前,请确保已使用支持该功能的SDK版本。

使用AK初始化

说明

运行本代码示例之前,请确保已设置环境变量TABLESTORE_ACCESS_KEY_IDTABLESTORE_ACCESS_KEY_SECRET。更多信息,请参见配置访问凭证

final String region = "yourRegion";
final String endpoint = "yourEndpoint";
final String instanceName = "yourInstance";
final String accessKeyId = System.getenv("TABLESTORE_ACCESS_KEY_ID");
final String accessKeySecret = System.getenv("TABLESTORE_ACCESS_KEY_SECRET");
final String v4SigningKey = "";
final String v4StsSigningKey = "";

{
    /**
     *  使用v4签名的示例一:使用原始的accessKeyId,accessKeySecret -> 先构造{@link DefaultCredentials },再生成 {@link V4Credentials }
     */
    DefaultCredentials credentials = new DefaultCredentials(accessKeyId, accessKeySecret);
    V4Credentials credentialsV4 = V4Credentials.createByServiceCredentials(credentials, region);
    CredentialsProvider provider = new DefaultCredentialProvider(credentialsV4);

    /**
     * using {@link V4Credentials } initialize tableStore client
     */
    SyncClient client = new SyncClient(endpoint, provider, instanceName, null, new ResourceManager(null, null));
    // ClientConfiguration提供了很多配置项,以下示例部分自定义配置项。
    // ClientConfiguration clientConfiguration = new ClientConfiguration();
    // clientConfiguration.setConnectionTimeoutInMillisecond(5000); // 设置建立连接的超时时间。单位为毫秒。
    // clientConfiguration.setSocketTimeoutInMillisecond(5000); // 设置socket超时时间。单位为毫秒。
    // clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy()); // 设置重试策略。如果不设置,则采用默认的重试策略。
    // SyncClient client = new SyncClient(endpoint, provider, instanceName, clientConfiguration, new ResourceManager(null, null));

    // do something
    
    // shutdown tableStore client
    client.shutdown();
}

{
    /**
     * 使用v4签名的示例二:直接使用accessKeyId与派生密钥 -> 直接构造{@link V4Credentials }
     */
    Date date = new Date();
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
    String signDate = dateFormat.format(date);      // signDate格式如同"20230527"
    V4Credentials credentialsV4 = new V4Credentials(accessKeyId, v4SigningKey, v4StsSigningKey, region, signDate);
    CredentialsProvider provider = new DefaultCredentialProvider(credentialsV4);

    /**
     * using {@link V4Credentials } initialize tableStore client
     */
    SyncClient client = new SyncClient(endpoint, provider, instanceName, null, new ResourceManager(null, null));

    // do something
    
    // shutdown tableStore client
    client.shutdown();
}

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

参数

示例

说明

region

cn-hangzhou

实例所处地域的ID。更多信息,请参见地域

endPoint

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

实例的访问地址。具体操作,请参见获取实例Endpoint

instanceName

myinstance

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

accessKeyId

System.getenv("TABLESTORE_ACCESS_KEY_ID")

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

accessKeySecret

System.getenv("TABLESTORE_ACCESS_KEY_SECRET")

使用STS初始化

说明

运行本代码示例之前,请确保已设置环境变量TABLESTORE_ACCESS_KEY_IDTABLESTORE_ACCESS_KEY_SECRETTABLESTORE_SESSION_TOKEN。更多信息,请参见配置访问凭证

final String region = "yourRegion";
final String endpoint = "yourEndpoint";
final String instanceName = "yourInstance";
final String accessKeyId = System.getenv("TABLESTORE_ACCESS_KEY_ID");
final String accessKeySecret = System.getenv("TABLESTORE_ACCESS_KEY_SECRET");
final String secretAccessKey = System.getenv("TABLESTORE_SESSION_TOKEN");

{
    /**
     *  使用v4签名的示例一:使用原始的accessKeyId,accessKeySecret -> 先构造{@link DefaultCredentials },再生成 {@link V4Credentials }
     */
    DefaultCredentials credentials = new DefaultCredentials(accessKeyId, accessKeySecret, secretAccessKey);
    V4Credentials credentialsV4 = V4Credentials.createByServiceCredentials(credentials, region);
    CredentialsProvider provider = new DefaultCredentialProvider(credentialsV4);

    /**
     * using {@link V4Credentials } initialize tableStore client
     */
    SyncClient client = new SyncClient(endpoint, provider, instanceName, null, new ResourceManager(null, null));
    // ClientConfiguration提供了很多配置项,以下示例部分自定义配置项。
    // ClientConfiguration clientConfiguration = new ClientConfiguration();
    // clientConfiguration.setConnectionTimeoutInMillisecond(5000); // 设置建立连接的超时时间。单位为毫秒。
    // clientConfiguration.setSocketTimeoutInMillisecond(5000); // 设置socket超时时间。单位为毫秒。
    // clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy()); // 设置重试策略。如果不设置,则采用默认的重试策略。
    // SyncClient client = new SyncClient(endpoint, provider, instanceName, clientConfiguration, new ResourceManager(null, null));

    // do something

    // shutdown tableStore client
    client.shutdown();
}

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

参数

示例

说明

region

cn-hangzhou

实例所处地域的ID。更多信息,请参见地域

endPoint

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

实例的访问地址。具体操作,请参见获取实例Endpoint

instanceName

myinstance

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

accessKeyId

System.getenv("TABLESTORE_ACCESS_KEY_ID")

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

accessKeySecret

System.getenv("TABLESTORE_ACCESS_KEY_SECRET")

securityToken

System.getenv("TABLESTORE_SESSION_TOKEN")

V2签名

使用AK初始化

说明

运行本代码示例之前,请确保已设置环境变量TABLESTORE_ACCESS_KEY_IDTABLESTORE_ACCESS_KEY_SECRET。更多信息,请参见配置访问凭证

final String endpoint = "yourEndpoint";
final String instanceName = "yourInstance";
final String accessKeyId = System.getenv("TABLESTORE_ACCESS_KEY_ID");
final String accessKeySecret = System.getenv("TABLESTORE_ACCESS_KEY_SECRET");

{
    /**
     * 使用v2签名(原始身份认证方法)示例一:直接使用原始的accessKeyId,accessKeySecret构造{@link DefaultCredentials }
     */
    DefaultCredentials credentials = new DefaultCredentials(accessKeyId, accessKeySecret);
    CredentialsProvider provider = new DefaultCredentialProvider(credentials);

    /**
     * using {@link DefaultCredentials } initialize tableStore client
     */
    SyncClient client = new SyncClient(endpoint, provider, instanceName, null, new ResourceManager(null, null));
    // ClientConfiguration提供了很多配置项,以下示例部分自定义配置项。
    // ClientConfiguration clientConfiguration = new ClientConfiguration();
    // clientConfiguration.setConnectionTimeoutInMillisecond(5000); // 设置建立连接的超时时间。单位为毫秒。
    // clientConfiguration.setSocketTimeoutInMillisecond(5000); // 设置socket超时时间。单位为毫秒。
    // clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy()); // 设置重试策略。如果不设置,则采用默认的重试策略。
    // SyncClient client = new SyncClient(endpoint, provider, instanceName, clientConfiguration, new ResourceManager(null, null));
    // shutdown tableStore client

    // do something

    client.shutdown();
}

{
    /**
     * 使用v2签名(原始身份认证方法)示例二:使用凭证提供者读取配置的环境变量{@link EnvironmentVariableCredentialsProvider }
     */
    EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();

    /**
     * using {@link DefaultCredentials } initialize tableStore client
     */
    SyncClient client = new SyncClient(endpoint, credentialsProvider, instanceName, null, new ResourceManager(null, null));

    // do something

    // shutdown tableStore client
    client.shutdown();
}

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

参数

示例

说明

endPoint

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

实例的访问地址。具体操作,请参见获取实例Endpoint

instanceName

myinstance

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

accessKeyId

System.getenv("TABLESTORE_ACCESS_KEY_ID")

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

accessKeySecret

System.getenv("TABLESTORE_ACCESS_KEY_SECRET")

使用STS初始化

说明

运行本代码示例之前,请确保已设置环境变量TABLESTORE_ACCESS_KEY_IDTABLESTORE_ACCESS_KEY_SECRETTABLESTORE_SESSION_TOKEN。更多信息,请参见配置访问凭证

final String endpoint = "yourEndpoint";
final String instanceName = "yourInstance";
final String accessKeyId = System.getenv("TABLESTORE_ACCESS_KEY_ID");
final String accessKeySecret = System.getenv("TABLESTORE_ACCESS_KEY_SECRET");
final String securityToken = System.getenv("TABLESTORE_SESSION_TOKEN");

{
    /**
     * 使用v2签名(原始身份认证方法)示例一:直接使用原始的accessKeyId,accessKeySecret和securityToken构造{@link DefaultCredentials }
     */
    DefaultCredentials credentials = new DefaultCredentials(accessKeyId, accessKeySecret, securityToken);
    CredentialsProvider provider = new DefaultCredentialProvider(credentials);

    /**
     * using {@link DefaultCredentials } initialize tableStore client
     */
    SyncClient client = new SyncClient(endpoint, provider, instanceName, null, new ResourceManager(null, null));
    // ClientConfiguration提供了很多配置项,以下示例部分自定义配置项。
    // ClientConfiguration clientConfiguration = new ClientConfiguration();
    // clientConfiguration.setConnectionTimeoutInMillisecond(5000); // 设置建立连接的超时时间。单位为毫秒。
    // clientConfiguration.setSocketTimeoutInMillisecond(5000); // 设置socket超时时间。单位为毫秒。
    // clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy()); // 设置重试策略。如果不设置,则采用默认的重试策略。
    // SyncClient client = new SyncClient(endpoint, provider, instanceName, clientConfiguration, new ResourceManager(null, null));

    // do something

    // shutdown tableStore client
    client.shutdown();
}

{
    /**
     * 使用v2签名(原始身份认证方法)示例二:使用凭证提供者读取配置的环境变量{@link EnvironmentVariableCredentialsProvider }
     */
    EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();

    /**
     * using {@link DefaultCredentials } initialize tableStore client
     */
    SyncClient client = new SyncClient(endpoint, credentialsProvider, instanceName, null, new ResourceManager(null, null));

    // do something

    // shutdown tableStore client
    client.shutdown();
}

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

参数

示例

说明

endPoint

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

实例的访问地址。具体操作,请参见获取实例Endpoint

instanceName

myinstance

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

accessKeyId

System.getenv("TABLESTORE_ACCESS_KEY_ID")

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

accessKeySecret

System.getenv("TABLESTORE_ACCESS_KEY_SECRET")

securityToken

System.getenv("TABLESTORE_SESSION_TOKEN")

初始化TimeseriesClient

如果要使用时序模型,在使用表格存储SDK时,您需要初始化一个TimeseriesClient实例,通过调用该TimeseriesClient的接口来访问表格存储服务。时序模型需要初始化单独的Client。

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

示例

警告

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

V4签名(推荐)

为了进一步保证用户密钥的安全,表格存储支持在初始化客户端时使用V4签名算法对用户密钥进行保护,推荐您使用V4签名进行客户端初始化。关于使用V4签名的更多信息,请参见用户密钥安全

表格存储Java SDK5.16.1版本开始支持V4签名功能。使用V4签名前,请确保已使用支持该功能的SDK版本。

使用AK初始化

说明

运行本代码示例之前,请确保已设置环境变量TABLESTORE_ACCESS_KEY_IDTABLESTORE_ACCESS_KEY_SECRET。更多信息,请参见配置访问凭证

 final String region = "yourRegion";
 final String endpoint = "yourEndpoint";
 final String instanceName = "yourInstance";
 final String accessKeyId = System.getenv("TABLESTORE_ACCESS_KEY_ID");
 final String accessKeySecret = System.getenv("TABLESTORE_ACCESS_KEY_SECRET");

 /**
  *  使用v4签名的示例:使用原始的accessKeyId,accessKeySecret -> 先构造{@link DefaultCredentials },再生成 {@link V4Credentials }
  */
 DefaultCredentials credentials = new DefaultCredentials(accessKeyId, accessKeySecret);
 V4Credentials credentialsV4 = V4Credentials.createByServiceCredentials(credentials, region);
 CredentialsProvider provider = new DefaultCredentialProvider(credentialsV4);

 /**
  * using {@link V4Credentials } initialize tableStore client
  */
 TimeseriesClient client = new TimeseriesClient(endpoint, provider, instanceName, null, new ResourceManager(null, null));
 // ClientConfiguration提供了很多配置项,以下示例部分自定义配置项。
 // ClientConfiguration clientConfiguration = new ClientConfiguration();
 // clientConfiguration.setConnectionTimeoutInMillisecond(5000); // 设置建立连接的超时时间。单位为毫秒。
 // clientConfiguration.setSocketTimeoutInMillisecond(5000); // 设置socket超时时间。单位为毫秒。
 // clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy()); // 设置重试策略。如果不设置,则采用默认的重试策略。
 // TimeseriesClient client = new TimeseriesClient(endpoint, provider, instanceName, clientConfiguration, new ResourceManager(null, null));

 // do something
 
 // shutdown tableStore client
 client.shutdown();

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

参数

示例

说明

region

cn-hangzhou

实例所处地域的ID。更多信息,请参见地域

endPoint

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

实例的访问地址。具体操作,请参见获取实例Endpoint

instanceName

myinstance

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

accessKeyId

System.getenv("TABLESTORE_ACCESS_KEY_ID")

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

accessKeySecret

System.getenv("TABLESTORE_ACCESS_KEY_SECRET")

使用STS初始化

说明

运行本代码示例之前,请确保已设置环境变量TABLESTORE_ACCESS_KEY_IDTABLESTORE_ACCESS_KEY_SECRETTABLESTORE_SESSION_TOKEN。更多信息,请参见配置访问凭证

final String region = "yourRegion";
final String endpoint = "yourEndpoint";
final String instanceName = "yourInstance";
final String accessKeyId = System.getenv("TABLESTORE_ACCESS_KEY_ID");
final String accessKeySecret = System.getenv("TABLESTORE_ACCESS_KEY_SECRET");
final String securityToken = System.getenv("TABLESTORE_SESSION_TOKEN");

/**
 *  使用v4签名的示例:使用原始的accessKeyId,accessKeySecret -> 先构造{@link DefaultCredentials },再生成 {@link V4Credentials }
 */
DefaultCredentials credentials = new DefaultCredentials(accessKeyId, accessKeySecret, securityToken);
V4Credentials credentialsV4 = V4Credentials.createByServiceCredentials(credentials, region);
CredentialsProvider provider = new DefaultCredentialProvider(credentialsV4);

/**
 * using {@link V4Credentials } initialize tableStore client
 */
TimeseriesClient client = new TimeseriesClient(endpoint, provider, instanceName, null, new ResourceManager(null, null));
// ClientConfiguration提供了很多配置项,以下示例部分自定义配置项。
// ClientConfiguration clientConfiguration = new ClientConfiguration();
// clientConfiguration.setConnectionTimeoutInMillisecond(5000); // 设置建立连接的超时时间。单位为毫秒。
// clientConfiguration.setSocketTimeoutInMillisecond(5000); // 设置socket超时时间。单位为毫秒。
// clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy()); // 设置重试策略。如果不设置,则采用默认的重试策略。
// TimeseriesClient client = new TimeseriesClient(endpoint, provider, instanceName, clientConfiguration, new ResourceManager(null, null));

// do something

// shutdown tableStore client
client.shutdown();

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

参数

示例

说明

region

cn-hangzhou

实例所处地域的ID。更多信息,请参见地域

endPoint

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

实例的访问地址。具体操作,请参见获取实例Endpoint

instanceName

myinstance

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

accessKeyId

System.getenv("TABLESTORE_ACCESS_KEY_ID")

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

accessKeySecret

System.getenv("TABLESTORE_ACCESS_KEY_SECRET")

securityToken

System.getenv("TABLESTORE_SESSION_TOKEN")

V2签名

使用AK初始化

说明

运行本代码示例之前,请确保已设置环境变量TABLESTORE_ACCESS_KEY_IDTABLESTORE_ACCESS_KEY_SECRET。更多信息,请参见配置访问凭证

final String endpoint = "yourEndpoint";
final String instanceName = "yourInstance";
final String accessKeyId = System.getenv("TABLESTORE_ACCESS_KEY_ID");
final String accessKeySecret = System.getenv("TABLESTORE_ACCESS_KEY_SECRET");

{
    /**
     * 使用v2签名(原始身份认证方法)示例一:直接使用原始的accessKeyId,accessKeySecret构造{@link DefaultCredentials }
     */
    DefaultCredentials credentials = new DefaultCredentials(accessKeyId, accessKeySecret);
    CredentialsProvider provider = new DefaultCredentialProvider(credentials);

    /**
     * using {@link DefaultCredentials } initialize tableStore client
     */
    TimeseriesClient client = new TimeseriesClient(endpoint, provider, instanceName, null, new ResourceManager(null, null));
    // ClientConfiguration提供了很多配置项,以下示例部分自定义配置项。
    // ClientConfiguration clientConfiguration = new ClientConfiguration();
    // clientConfiguration.setConnectionTimeoutInMillisecond(5000); // 设置建立连接的超时时间。单位为毫秒。
    // clientConfiguration.setSocketTimeoutInMillisecond(5000); // 设置socket超时时间。单位为毫秒。
    // clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy()); // 设置重试策略。如果不设置,则采用默认的重试策略。
    // TimeseriesClient client = new TimeseriesClient(endpoint, provider, instanceName, clientConfiguration, new ResourceManager(null, null));

    // do something
 
    // shutdown tableStore client
    client.shutdown();
}

{
    /**
     * 使用v2签名(原始身份认证方法)示例二:使用凭证提供者读取配置的环境变量{@link EnvironmentVariableCredentialsProvider }
     */
    EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();

    /**
     * using {@link DefaultCredentials } initialize tableStore client
     */
    TimeseriesClient client = new TimeseriesClient(endpoint, credentialsProvider, instanceName, null, new ResourceManager(null, null));

    // do something

    // shutdown tableStore client
    client.shutdown();
}

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

参数

示例

说明

endPoint

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

实例的访问地址。具体操作,请参见获取实例Endpoint

instanceName

myinstance

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

accessKeyId

System.getenv("TABLESTORE_ACCESS_KEY_ID")

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

accessKeySecret

System.getenv("TABLESTORE_ACCESS_KEY_SECRET")

使用STS初始化

说明

运行本代码示例之前,请确保已设置环境变量TABLESTORE_ACCESS_KEY_IDTABLESTORE_ACCESS_KEY_SECRETTABLESTORE_SESSION_TOKEN。更多信息,请参见配置访问凭证

  final String endpoint = "yourEndpoint";
  final String instanceName = "yourInstance";
  final String accessKeyId = System.getenv("TABLESTORE_ACCESS_KEY_ID");
  final String accessKeySecret = System.getenv("TABLESTORE_ACCESS_KEY_SECRET");
  final String securityToken = System.getenv("TABLESTORE_SESSION_TOKEN");

  {
      /**
       * 使用v2签名(原始身份认证方法)示例一:直接使用原始的accessKeyId,accessKeySecret和securityToken构造{@link DefaultCredentials }
       */
      DefaultCredentials credentials = new DefaultCredentials(accessKeyId, accessKeySecret, securityToken);
      CredentialsProvider provider = new DefaultCredentialProvider(credentials);

      /**
       * using {@link DefaultCredentials } initialize tableStore client
       */
      TimeseriesClient client = new TimeseriesClient(endpoint, provider, instanceName, null, new ResourceManager(null, null));
      // ClientConfiguration提供了很多配置项,以下示例部分自定义配置项。
      // ClientConfiguration clientConfiguration = new ClientConfiguration();
      // clientConfiguration.setConnectionTimeoutInMillisecond(5000); // 设置建立连接的超时时间。单位为毫秒。
      // clientConfiguration.setSocketTimeoutInMillisecond(5000); // 设置socket超时时间。单位为毫秒。
      // clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy()); // 设置重试策略。如果不设置,则采用默认的重试策略。
      // TimeseriesClient client = new TimeseriesClient(endpoint, provider, instanceName, clientConfiguration, new ResourceManager(null, null));

      // do something

      // shutdown tableStore client
      client.shutdown();
  }

  {
      /**
       * 使用v2签名(原始身份认证方法)示例二:使用凭证提供者读取配置的环境变量{@link EnvironmentVariableCredentialsProvider }
       */
      EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();

      /**
       * using {@link DefaultCredentials } initialize tableStore client
       */
      TimeseriesClient client = new TimeseriesClient(endpoint, credentialsProvider, instanceName, null, new ResourceManager(null, null));

      // do something

      // shutdown tableStore client
      client.shutdown();
  }

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

参数

示例

说明

endPoint

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

实例的访问地址。具体操作,请参见获取实例Endpoint

instanceName

myinstance

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

accessKeyId

System.getenv("TABLESTORE_ACCESS_KEY_ID")

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

accessKeySecret

System.getenv("TABLESTORE_ACCESS_KEY_SECRET")

securityToken

System.getenv("TABLESTORE_SESSION_TOKEN")

常见问题