初始化
确认Endpoint
TableStorage目前支持“华北-保定”和“华南-广州”两个区域,对应Endpoint如下:
访问区域 | 对应Endpoint |
---|---|
华北-保定 | bts.bd.baidubce.com |
华南-广州 | bts.gz.baidubce.com |
鉴权和认证
要使用百度智能云产品,您需要拥有一个百度智能云账号和一个有效的 AK(Access Key ID)、SK(Secret Access Key)用来进行签名认证。
可以通过如下步骤获得并了解您的AK/SK信息: 1. 注册百度智能云账号 2. 创建AK/SK
新建TableStorageClient
TableStorageClient是与Table Storage服务交互的方法类,为开发者提供了与TableStorage交互的一系列方法。
使用AK/SK新建TableStorageClient
使用AK/SK访问TableStorage,可以参考以下代码创建TableStorageClient:
public class Sample {
public static void main(String[] args) {
String accessKeyId = <your-access-key-id> // 用户的Access Key ID
String secretAccessKey = <your-secret-access-key> // 用户的Secret Access Key
String endpoint = <domain-nam> // 用户期望访问的域名
String instanceName = <instance-name> // 用户期望访问的instance
// 初始化一个TableStorageClient
BceClientConfiguration conf = new BceClientConfiguration();
conf.setCredentials(new DefaultBceCredentials(accessKeyId, secretAccessKey));
conf.setEndpoint(endpoint);
TableStorageClient client = new TableStorageClient(conf, instanceName);
}
}
在上面代码中,“accessKeyId”对应控制台中的“Access Key ID”,“secretAccessKey”对应控制台中的“Access Key Secret”,获取方式请参考《管理ACCESSKEY》。
用STS token新建TableStorageClient
TableStorage可以通过STS机制实现第三方的临时授权访问。STS(Security Token Service)是百度智能云提供的临时授权服务,详细介绍可以参见临时授权访问。
使用STS token访问TableStorage,首先需要访问STS服务,申请STS token。申请到STS token之后,可将STS token配置到TableStorageClient中,可以参考如下代码新建TableStorageClient:
public class Sample {
public static void main(String[] args) {
BceCredentials credentials = new DefaultBceCredentials(ACCESS_KEY_ID, SECRET_ACCESS_KEY);
StsClient client = new StsClient(
new BceClientConfiguration().withEndpoint(STS_ENDPOINT).withCredentials(credentials)
);
GetSessionTokenResponse response = client.getSessionToken(new GetSessionTokenRequest());
// or simply call;
// GetSessionTokenResponse response = client.getSessionToken();
// or you can specify limited permissions with ACL:
// GetSessionTokenResponse response = client.getSessionToken(new GetSessionTokenRequest().withAcl("blabla"));
// build DefaultBceSessionCredentials object from response:
BceCredentials tableStorageStsCredentials = new DefaultBceSessionCredentials(
response.getAccessKeyId(),
response.getSecretAccessKey(),
response.getSessionToken());
System.out.println("==================================");
System.out.println("GetSessionToken result:");
System.out.println(" accessKeyId: " + response.getAccessKeyId());
System.out.println(" secretAccessKey: " + response.getSecretAccessKey());
System.out.println(" securityToken: " + response.getSessionToken());
System.out.println(" expiresAt: " + response.getExpiration().toString());
System.out.println("==================================");
// build TableStorage client
BceClientConfiguration config = new BceClientConfiguration();
config.setCredentials(tableStorageStsCredentials);
config.setEndpoint(TABLESTORAGE_ENDPOINT);
TableStorageClient tableStorageClient = new TableStorageClient(config, INSTANCE_NAME);
}
}
注意:目前使用STS配置client时,无论对应TableStorage服务的endpoint在哪里,endpoint都需配置为
http://sts.bj.baidubce.com
。
配置HTTPS协议访问TableStorage
TableStorage服务支持HTTPS传输协议,您可以通过如下两种方式在TableStorage Java SDK中使用HTTPS访问:
在endpoint中指明https
BceClientConfiguration conf = new BceClientConfiguration();
conf.setCredentials(new DefaultBceCredentials(ACCESS_KEY, SECRET_ACCESS_KEY));
conf.setEndpoint("https://bts.bd.baidubce.com");
TableStorageClient client = new TableStorageClient(conf, INSTANCE_NAME, false);
通过调用setProtocol方法设置https协议
BceClientConfiguration conf = new BceClientConfiguration();
conf.setCredentials(new DefaultBceCredentials(ACCESS_KEY, SECRET_ACCESS_KEY));
conf.setEndpoint("bts.bd.baidubce.com");
conf.setProtocol(Protocol.HTTPS);
TableStorageClient client = new TableStorageClient(conf, INSTANCE_NAME, false);
注意:如果在endpoint中指明了protocol, 则endpoint中的生效, 另外单独再调用setProtocol()不起作用。
配置TableStorageClient
TableStorageClient的网络参数可以通过BceClientConfiguration配置, 包括以下参数:
参数 | 说明 |
---|---|
UserAgent | 用户代理,指HTTP Header中的User-Agent |
Protocol | 网络协议类型,支持HTTP和HTTPS |
LocalAddress | 本地地址 |
ConnectionTimeoutInMillis | 建立连接的超时时间(单位:毫秒) |
SocketTimeoutInMillis | 数据传输的超时时间(单位:毫秒) |
MaxConnections | 允许建立的最大连接数 |
RetryPolicy | 重试策略,默认为DefaultRetryPolicy |
说明:如无特殊需求,以上参数均可使用默认值。