全部產品
Search
文件中心

Tablestore:初始化OTSClient

更新時間:Sep 24, 2024

OTSClient是Tablestore服務的用戶端,它為調用者提供了一系列的方法,可以用來動作表、讀寫單行資料、讀寫多行資料等。如果要使用寬表模型的操作資料表、讀寫單行資料、讀寫多行資料等功能,您需要初始化一個OTSClient執行個體,並可以根據需要修改OTSClientConfig的預設配置項;如果要使用時序模型的操作時序表、檢索時間軸、讀寫時序資料等功能,您需要初始化一個TimeseriesClient執行個體。

注意事項

  • 如果要使用HTTPs協議訪問Tablestore資源,請升級Java環境到Java 7後即可。

  • TablestoreJava SDK支援使用多線程。使用多線程時,建議共用一個OTSClient對象。

準備工作

初始化OTSClient前,您需要完成擷取執行個體Endpoint、安裝TablestoreJava SDK和配置訪問憑證的準備工作。

擷取執行個體Endpoint

建立執行個體後,您需要擷取執行個體網域名稱地址(Endpoint)用於後續通過Endpoint訪問執行個體。

Endpoint是阿里雲Tablestore服務各個執行個體的網域名稱地址,例如https://sun.cn-hangzhou.ots.aliyuncs.com,表示使用HTTPS協議通過公網網路訪問華東1(杭州)地區的sun執行個體。更多資訊,請參見服務地址

重要

除了公網可以訪問外,也支援私網地址。

  1. 如果未開通Tablestore服務,請進行開通。具體操作,請參見開通Table Store服務

  2. 建立執行個體。具體操作,請參見建立執行個體

  3. 建立執行個體後擷取執行個體的Endpoint。

    1. 登入Table Store控制台

    2. 概覽頁面,單擊執行個體名稱。

    3. 執行個體詳情頁簽的執行個體訪問地址地區即可查看該執行個體的服務地址(Endpoint)。

      image

安裝TablestoreJava SDK

具體操作,請參見安裝Table StoreJava SDK

配置訪問憑證

要接入阿里雲的Tablestore服務,您需要擁有一個有效存取金鑰進行簽名認證。具體操作,請參見配置訪問憑證

初始化Client

如果要使用寬表模型,在使用Table Store的SDK時,您必須首先構造一個Client,通過調用該Client的介面來訪問Tablestore服務,Client的介面與Tablestore提供的RestfulAPI是一致的。

Tablestore的SDK提供了SyncClient和AsyncClient兩種Client,分別對應同步介面和非同步介面。同步介面調用完畢後請求即執行完成,使用方便,使用者可以先使用同步介面瞭解Tablestore的各種功能。非同步介面相比同步介面更加靈活,如果對效能有一定需求,可以在使用非同步介面和使用多線程之間做一些取捨。

說明

不管是SyncClient還是AsyncClient,都是安全執行緒的,且內部會自動管理線程和管理串連資源。不需要為每個線程建立一個Client,也不需要為每個請求建立一個Client,全域建立一個Client即可。

樣本

警告

阿里雲帳號AccessKey擁有所有API的存取權限,建議您使用RAM使用者進行API訪問或日常營運。強烈建議不要把AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。本樣本以將AccessKey、SecurityToken儲存在環境變數中來實現身分識別驗證為例介紹。

V4簽名(推薦)

為了進一步保證使用者密鑰的安全,Table Store支援在初始化用戶端時使用V4簽名演算法對使用者密鑰進行保護,推薦您使用V4簽名進行用戶端初始化。關於使用V4簽名的更多資訊,請參見使用者密鑰安全

Table StoreJava SDK從5.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")

通過環境變數擷取AccessKey和STS 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")

通過環境變數擷取AccessKey和STS Token,請確保已配置相應環境變數。

accessKeySecret

System.getenv("TABLESTORE_ACCESS_KEY_SECRET")

securityToken

System.getenv("TABLESTORE_SESSION_TOKEN")

初始化TimeseriesClient

如果要使用時序模型,在使用Tablestore的SDK時,您需要初始化一個TimeseriesClient執行個體,通過調用該TimeseriesClient的介面來訪問Tablestore服務。時序模型需要初始化單獨的Client。

Tablestore的SDK提供了TimeseriesClient和AsyncTimeseriesClient兩種TimeseriesClient,分別對應同步介面和非同步介面。

樣本

警告

阿里雲帳號AccessKey擁有所有API的存取權限,建議您使用RAM使用者進行API訪問或日常營運。強烈建議不要把AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。本樣本以將AccessKey、SecurityToken儲存在環境變數中來實現身分識別驗證為例介紹。

V4簽名(推薦)

為了進一步保證使用者密鑰的安全,Table Store支援在初始化用戶端時使用V4簽名演算法對使用者密鑰進行保護,推薦您使用V4簽名進行用戶端初始化。關於使用V4簽名的更多資訊,請參見使用者密鑰安全

Table StoreJava SDK從5.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")

通過環境變數擷取AccessKey和STS 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")

通過環境變數擷取AccessKey和STS Token,請確保已配置相應環境變數。

accessKeySecret

System.getenv("TABLESTORE_ACCESS_KEY_SECRET")

securityToken

System.getenv("TABLESTORE_SESSION_TOKEN")

常見問題