文档

初始化OTSClient

更新时间:

OTSClient是表格存储服务的客户端,它为调用者提供了一系列的方法,可以用来操作表、读写单行数据、读写多行数据等。使用PHP SDK发起请求,您需要初始化一个OTSClient实例,并根据需要修改OTSClientConfig的默认配置项。

注意事项

如果要使用HTTPs协议访问表格存储资源,请安装OpenSSL PHP扩展。

准备工作

初始化OTSClient前,您需要完成配置访问密钥、获取实例Endpoint和安装表格存储PHP SDK的准备工作。

配置访问密钥

要接入阿里云的表格存储服务,您需要拥有一个有效的访问密钥进行签名认证。目前支持如下三种方式获取AccessKey。为了保证访问密钥安全,请根据使用的操作系统将访问密钥配置到环境变量。

  1. 获取访问密钥。

    重要

    为避免阿里云账号泄露AccessKey带来的安全风险,建议您通过RAM用户来完成授权和AccessKey的创建。

    获取方式

    操作

    阿里云账号的AccessKey ID和AccessKey Secret

    1. 在阿里云官网注册阿里云账号

    2. 创建AccessKey ID和AccessKey Secret。具体操作,请参见创建AccessKey

    被授予访问表格存储权限RAM用户的AccessKey ID和AccessKey Secret

    1. 使用阿里云账号前往访问控制RAM,创建一个新的RAM用户或者使用已经存在的RAM用户。

    2. 使用阿里云账号授予RAM用户访问表格存储的权限。具体操作,请参见通过RAM Policy为RAM用户授权

    3. 为RAM用户授权后,即可使用RAM用户的AccessKey ID和AccessKey Secret访问。具体操作,请参见创建AccessKey

    从STS获取的临时访问凭证

    1. 应用的服务器通过访问RAM/STS服务,获取一个临时的AccessKey ID、AccessKey Secret和SecurityToken发送给使用方。

    2. 使用方使用上述临时密钥访问表格存储服务。

  2. 配置环境变量。

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

    重要

    环境变量配置完成后,为确保新的设置被正确应用,您可能需要重启相关的开发工具(IDE等)或服务。

    Windows系统配置方法

    您可以通过图形用户界面GUI、命令行提示符CMD或Windows PowerShell的方式进行环境变量的配置。更多信息,请参见在Linux、macOS和Windows系统配置环境变量

    通过图形用户界面GUI配置

    通过图形化界面方式在环境变量对话框的系统变量区域中分别添加环境变量OTS_AK_ENV和OTS_SK_ENV,并将环境变量分别配置为已准备好的AccessKey ID和AccessKey Secret,然后保存配置即可。

    image

    通过命令行提示符CMD配置

    以管理员身份打开命令提示符,并使用以下命令在系统中新增环境变量。其中/M表示系统级环境变量。

    setx OTS_AK_ENV LT******************** /M
    setx OTS_SK_ENV Ir**************************** /M

    配置完成后,在命令提示符界面执行echo %OTS_AK_ENV%echo %OTS_SK_ENV%命令检查配置是否生效。如果能返回正确的AccessKey,则说明配置成功。

    通过Windows PowerShell配置
    1. 以管理员身份运行Windows PowerShell。

    2. 在PowerShell中执行如下命令设置环境变量。

      [System.Environment]::SetEnvironmentVariable('OTS_AK_ENV', 'LT********************', [System.EnvironmentVariableTarget]::Machine)
      [System.Environment]::SetEnvironmentVariable('OTS_SK_ENV', 'Ir****************************', [System.EnvironmentVariableTarget]::Machine)
    3. 重启PowerShell后,在PowerShell中执行如下命令验证环境变量是否生效。

      如果返回正确的AccessKey,则说明配置成功。

      Get-ChildItem env:OTS_AK_ENV
      Get-ChildItem env:OTS_SK_ENV

    Linux和macOS系统配置方法

    说明

    如果是第一次设置环境变量,您可以使用touch ~/.bash_profile命令创建一个配置文件,如果已经存在配置文件,则使用vim ~/.bash_profile命令直接编辑文件。

    1. 创建.bash_profile文件。

      touch ~/.bash_profile
      vim ~/.bash_profile
    2. .bash_profile文件中配置环境变量,编辑完成后保存退出。

      # 将以下命令中的<ACCESS_KEY_ID>请替换为已准备好的AccessKey ID,<ACCESS_KEY_SECRET>请替换为对应的AccessKey Secret。
      export OTS_AK_ENV=<ACCESS_KEY_ID>
      export OTS_SK_ENV=<ACCESS_KEY_SECRET>
    3. 使用.bash_profile文件的配置生效并进行验证。

      # 使配置文件生效
      source ~/.bash_profile
      # 显示配置是否生效
      echo $ALIBABA_CLOUD_ACCESS_KEY_ID

      如果返回正确的AccessKey ID,则说明配置成功。

获取实例Endpoint

创建实例后,您需要获取实例域名地址(Endpoint)用于后续通过Endpoint访问实例。

Endpoint是阿里云表格存储服务各个实例的域名地址,例如https://sun.cn-hangzhou.ots.aliyuncs.com,表示使用HTTPS协议通过公网网络访问华东1(杭州)地域的sun实例。更多信息,请参见服务地址

  1. 如果未开通表格存储服务,请进行开通。具体操作,请参见开通表格存储服务

  2. 创建实例。具体操作,请参见创建实例

  3. 创建实例后获取实例的Endpoint。

    1. 登录表格存储控制台

    2. 概览页面,单击实例名称。

    3. 实例详情页签的实例访问地址区域即可查看该实例的服务地址(Endpoint)。

      fig_endpoint

安装表格存储PHP SDK

具体操作,请参见安装表格存储PHP SDK

初始化对接

使用表格存储的SDK时,您必须首先构造一个OTSClient,通过调用该OTSClient的接口来访问表格存储服务。

重要

阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。本示例以将AccessKey保存在环境变量中来实现身份验证为例介绍。

  1. 使用表格存储的Endpoint新建OTSClient。

    $accessKeyId = getenv('OTS_AK_ENV');
    $accessKeySecret = getenv('OTS_SK_ENV');
    $otsClient = new Aliyun\OTS\OTSClient(array(
        'EndPoint' => "<your endpoint>",
        'AccessKeyID' => $accessKeyId,
        'AccessKeySecret' => $accessKeySecret,
        'InstanceName' => "<your instance name>"
    ));

    配置参数说明请参见下表。

    参数

    示例

    说明

    EndPoint

    https://myinstance.cn-hangzhou.ots.aliyuncs.com

    实例的访问地址。具体操作,请参见获取实例Endpoint

    AccessKeyID

    getenv('OTS_AK_ENV')

    通过环境变量获取AccessKey。

    请确保已配置相应环境变量。具体操作,请参见配置访问密钥

    AccessKeySecret

    getenv('OTS_SK_ENV')

    InstanceName

    myinstance

    实例名称。更多信息,请参见实例

  2. 配置OTSClient。

    如果您需要修改OTSClient的一些默认配置,请在构造OTSClient时传入对应参数,例如代理、连接超时、最大连接数等参数。 具体设置的参数见下表。

    参数

    描述

    ConnectionTimeout

    与OTS建立连接的最大延时。默认值为2.0秒。

    StsToken

    临时访问的token。

    当使用从STS获取的临时访问凭证访问表格存储服务时,需要配置此参数。关于使用临时访问凭证的具体操作,请参见使用临时访问凭证

    SocketTimeout

    每次请求响应最大延时。默认值为2.0秒。

    当传输量比较大时,建议将此参数值设置的大些。

    RetryPolicy

    重试策略。默认配置为DefaultRetryPolicy。

    如果要关闭重试策略,设置此参数为null即可。

    ErrorLogHandler

    Error级别日志处理函数,用来打印表格存储服务端返回错误时的日志。默认配置为defaultOTSErrorLogHandler。

    如果要关闭Error级别的日志打印,设置此参数为null即可。

    DebugLogHandler

    Debug级别日志处理函数,用来打印正常的请求和响应信息。默认配置为defaultOTSDebugLogHandler。

    如果要关闭Debug级别的日志打印,设置此参数为null即可。

常见问题

使用表格存储SDK时出现Signature mismatch异常