初始化
确认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
1.在新建TableStorageClient之前,需要先创建配置文件对TableStorageClient进行配置,以下将此配置文件命名为bts_sample_conf.py
,具体配置信息如下所示:
#!/usr/bin/env python
#coding=utf-8
#导入Python标准日志模块
import logging
#从Python SDK导入配置管理模块以及安全认证模块
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.auth.bce_credentials import BceCredentials
#设置TableStorageClient的Host,Access Key ID和Secret Access Key
host = "bts.bd.baidubce.com"
access_key_id = "AK"
secret_access_key = "SK"
#设置日志文件的句柄和日志级别
logger = logging.getLogger('baidubce.services.bts.btsclient')
fh = logging.FileHandler("sample.log")
fh.setLevel(logging.DEBUG)
#设置日志文件输出的顺序、结构和内容
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
fh.setFormatter(formatter)
logger.setLevel(logging.DEBUG)
logger.addHandler(fh)
#创建BceClientConfiguration
config = BceClientConfiguration(credentials=BceCredentials(access_key_id, secret_access_key), endpoint = host)
注意: 针对日志文件,Logging有如下级别:DEBUG,INFO,WARNING,ERROR,CRITICAL。
在上面代码中,access_key_id对应控制台中的“Access Key ID”,secret_access_key对应控制台中的“Access Key Secret”,获取方式请参考管理ACCESSKEY。
2.在完成上述配置之后,参考如下代码新建一个TableStorageClient。
#导入TableStorageClient配置文件
import bts_sample_conf
#导入TableStorage相关模块
from baidubce import exception
from baidubce.services.bts.bts_client import BtsClient
#新建TableStorageClient
client = BtsClient(bts_sample_conf.config)
通过STS token新建TableStorageClient
TableStorage可以通过STS机制实现第三方的临时授权访问。STS(Security Token Service)是百度智能云提供的临时授权服务,详细介绍可以参见临时授权访问。
使用STS token访问TableStorage,首先需要访问STS服务,申请一套AK、SK和STS Token。之后可将该套参数配置到TableStorageClient中,用户可以参考如下代码新建一个TableStorageClient:
1.在新建TableStorageClient之前,需要先创建配置文件对TableStorageClient进行配置,以下将此配置文件命名为sts_sample_conf.py,具体配置信息如下所示:
#!/usr/bin/env python
#coding=utf-8
import logging
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.auth.bce_credentials import BceCredentials
host = 'bts.bd.baidubce.com'
access_key_id = 'AK'
secret_access_key = 'SK'
token = 'sts_token'
logger = logging.getLogger('baidubce.services.bts.btsclient')
fh = logging.FileHandler('sample.log')
fh.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
fh.setFormatter(formatter)
logger.setLevel(logging.DEBUG)
logger.addHandler(fh)
#使用sts_token创建BceClientCongiguration
config = BceClientConfiguration(credentials=BceCredentials(access_key_id, secret_access_key), endpoint=HOST, security_token=token)
2.在完成上述配置之后,参考如下代码新建一个TableStorageClient。
#导入配置文件
import sts_sample_conf
#导入TableStorage相关模块
from baidubce import exception
from baidubce.services.bts.bts_client import BtsClient
#新建TableStorageClient
client = BtsClient(sts_sample_conf.config)
配置HTTPS协议访问TableStorage
TableStorage服务支持HTTPS传输协议,您可以通过如下两种方式在TableStorage Python SDK中使用HTTPS访问:
-
在endpoint中指定HTTPS:
config = bce_client_configuration.BceClientConfiguration( credentials = bce_credentials.BceCredentials( access_key_id = 'your-ak', secret_access_key = 'your-sk' ), endpoint = 'https://bts.bd.baidubce.com' ) client = bts_client.BtsClient(config)
-
通过在
protocol
中指定https
来设置HTTPS协议:config = bce_client_configuration.BceClientConfiguration( credentials = bce_credentials.BceCredentials( access_key_id = 'your-ak', secret_access_key = 'your-sk' ), endpoint = 'bts.bd.baidubce.com', protocol = baidubce.protocol.HTTPS ) client = bts_client.BtsClient(config)
注意: 如果您在指定了endpoint的同时指定了protocol参数,则以endpoint为准。
配置TableStorageClient
TableStorageClient的网络参数可以通过BceClientConfiguration配置, 包括以下参数:
参数 | 说明 |
---|---|
protocol | 网络协议类型,支持HTTP和HTTPS |
connection_timeout_in_mills | 请求超时时间(单位:毫秒) |
retry_policy | 连接重试策略,初始化Client时默认为三次指数退避 |
send_buf_size | 发送缓冲区大小 |
recv_buf_size | 接收缓冲区大小 |
示例:
#设置请求超时时间
bts_sample_conf.config.connection_timeout_in_mills = TIMEOUT
#设置连接重试策略
#三次指数退避重试
bts_sample_conf.config.retry_policy = BackOffRetryPolicy()
#不重试
bts_sample_conf.config.retry_policy = NoRetryPolicy()