OTSClient是表格存储服务的客户端,它为调用者提供了一系列的方法,可以用来操作表、读写单行数据、读写多行数据等。

确定Endpoint

Endpoint是阿里云表格存储服务各个实例的域名地址,目前支持下列形式。

示例解释
http://sun.cn-hangzhou.ots.aliyuncs.comHTTP协议,公网网络访问杭州区域的sun实例。
https://sun.cn-hangzhou.ots.aliyuncs.comHTTPS协议,公网网络访问杭州区域的sun实例。
重要 除了公网可以访问外,也支持私网地址。更多信息,请参见服务地址

请按照如下步骤获取实例的Endpoint:

  1. 登录表格存储管理控制台。
  2. 概览页面,单击实例名称。
  3. 实例详情页签的实例访问地址区域即可查看该实例的服务地址(Endpoint)。
    fig_endpoint

配置密钥

要接入阿里云的表格存储服务,您需要拥有一个有效的访问密钥进行签名认证。目前支持下面三种方式:

  • 阿里云账号的AccessKey ID和AccessKey Secret。创建步骤如下:
    1. 在阿里云官网注册阿里云账号
    2. 创建AccessKey ID和AccessKey Secret。具体操作,请参见获取AccessKey
  • 被授予访问表格存储权限的RAM用户的AccessKey ID和AccessKey Secret。创建步骤如下:
    1. 使用阿里云账号前往访问控制RAM,创建一个新的RAM用户或者使用已经存在的RAM用户。
    2. 使用阿里云账号授予RAM用户访问表格存储的权限。
    3. RAM用户被授权后,即可使用自己的AccessKey ID和AccessKey Secret访问。
  • 从STS获取的临时访问凭证。获取步骤如下:
    1. 应用的服务器通过访问RAM/STS服务,获取一个临时的AccessKey ID、AccessKey Secret和SecurityToken发送给使用方。
    2. 使用方使用上述临时密钥访问表格存储服务。

配置环境变量

请根据使用的操作系统执行相应操作配置环境变量。

表格存储使用OTS_AK_ENV环境变量名表示阿里云账号或者RAM用户的AccessKey ID,使用OTS_SK_ENV环境变量名表示对应AccessKey Secret,请根据实际配置。

  • Linux和macOS系统配置方法

    执行如下命令配置环境变量。其中<access_key_id>请替换为已准备好的AccessKey ID,<access_key_secret>请替换为对应的AccessKey Secret。

    export OTS_AK_ENV=<access_key_id>
    export OTS_SK_ENV=<access_key_secret>
  • Windows系统配置方法

    新建环境变量文件,并在文件中添加环境变量OTS_AK_ENV和OTS_SK_ENV,然后环境变量分别配置为已准备好的AccessKey ID和AccessKey Secret,最后重启Windows系统使配置生效。

初始化对接

重要 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。本示例以将AccessKey保存在环境变量中来实现身份验证为例介绍。
  • 接口
    """
    初始化``OTSClient``实例。
    ``end_point``是表格存储服务的地址(例如'https://instance.cn-hangzhou.ots.aliyun.com:80'),必须以'https://'开头。
    ``access_key_id``是访问表格存储服务的AccessKeyID,通过官方网站申请或通过管理员获取。
    ``access_key_secret``是访问表格存储服务的AccessKeySecret,通过官方网站申请或通过管理员获取。
    ``instance_name``是要访问的实例名,通过官方网站控制台创建或通过管理员获取。
    ``sts_token``是访问表格存储服务的STS token,从阿里云STS服务获取,具有有效期,过期后需要重新获取。
    ``encoding``请求参数的字符串编码类型,默认值为utf8。
    ``socket_timeout``是连接池中每个连接的Socket超时,单位为秒,可以为int或float。默认值为50。
    ``max_connection``是连接池的最大连接数。默认值为50。
    ``logger_name``用来在请求中打印DEBUG日志,或者在出错时打印ERROR日志。
    ``retry_policy``定义了重试策略,默认的重试策略为DefaultRetryPolicy。你您可以继承RetryPolicy来实现自己的重试策略,详情请参见DefaultRetryPolicy的代码。
     """
     class OTSClient(object):
        def __init__(self, endpoint, access_key_id, access_key_secret, instance_name, **kwargs):                   
  • 示例
    #########    设置日志文件名称和重试策略     #########
    # 日志文件名称为table_store.log,重试策略是WriteRetryPolicy,会对写重试。
    access_key_id = os.getenv("OTS_AK_ENV")
    access_key_secret = os.getenv("OTS_SK_ENV")
    ots_client = OTSClient('endpoint', access_key_id, access_key_secret, 'instance_name', logger_name = 'table_store.log',  retry_policy = WriteRetryPolicy())
    
    #########    使用STS     #########
    ots_client = OTSClient('endpoint', 'STS.K8h*******GB77', 'CkuDj******Wn6', 'instance_name', sts_token = 'CAISjgJ1q6Ft5B2y********OFcsLLuw==')                    

引入tablestore包

说明 如果不引入tablestore包,则会出现NameError: name ‘OTSClient’ is not defined提示,请引入tablestore包后运行即可。更多信息,请参见Python SDK ListTable示例
在使用Python SDK调用功能函数时,您必须在代码中引入tablestore包。引入tablestore包的具体代码如下:
# 引入Tablestore包。
from tablestore import *
# 通过环境变量获取AccessKey时需要引入。
import os

HTTPS

  • 从2.0.8版本开始支持HTTPS。
  • OpenSSL版本最少为0.9.8j,推荐OpenSSL 1.0.2d。
  • Python 2.0.8发布包中包含了certifi包直接安装使用。如果需要更新根证书请从根证书下载最新的根证书。