OTSClient是Tablestore服務的用戶端,它為調用者提供了一系列的方法,可以用來動作表、讀寫單行資料、讀寫多行資料等。如果要使用寬表模型的操作資料表、讀寫單行資料、讀寫多行資料等功能,您需要初始化一個OTSClient執行個體,並可以根據需要修改OTSClientConfig的預設配置項;如果要使用時序模型的操作時序表、檢索時間軸、讀寫時序資料等功能,您需要初始化一個TimeseriesClient執行個體。
注意事項
如果要使用HTTPs協議訪問Tablestore資源,請升級Java環境到Java 7後即可。
TablestoreJava SDK支援使用多線程。使用多線程時,建議共用一個OTSClient對象。
準備工作
初始化OTSClient前,您需要完成擷取執行個體Endpoint、安裝TablestoreJava SDK和配置訪問憑證的準備工作。
擷取執行個體Endpoint
安裝TablestoreJava SDK
配置訪問憑證
初始化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_ID
和TABLESTORE_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_ID
、TABLESTORE_ACCESS_KEY_SECRET
和TABLESTORE_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_ID
和TABLESTORE_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_ID
、TABLESTORE_ACCESS_KEY_SECRET
和TABLESTORE_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_ID
和TABLESTORE_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_ID
、TABLESTORE_ACCESS_KEY_SECRET
和TABLESTORE_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_ID
和TABLESTORE_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_ID
、TABLESTORE_ACCESS_KEY_SECRET
和TABLESTORE_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") |