OTSClient is a client for Tablestore. OTSClient provides various methods for you to manage tables and perform read and write operations on a single row or multiple rows. To use Tablestore SDK for PHP to initiate a request, you must initialize an OTSClient instance and modify the default configurations of the OTSClient instance based on your business requirements.
Usage notes
If you want to access Tablestore resources over HTTPS, you must install the OpenSSL PHP extension.
Preparations
Before you initialize an OTSClient instance, you must configure an AccessKey pair, obtain the endpoint of your Tablestore instance, and install Tablestore SDK for PHP.
Configure an AccessKey pair
Obtain the endpoint of a Tablestore instance
Install Tablestore SDK for PHP
Initialize an OTSClient instance
To use Tablestore SDK for PHP, you must first create an OTSClient instance. Then, you can call the methods of the OTSClient instance to access Tablestore.
The AccessKey pair of an Alibaba Cloud account has permissions on all API operations. We recommend that you use the AccessKey pair of a RAM user to call API operations or perform routine O&M. We recommend that you do not hard-code the AccessKey ID and AccessKey secret into your project code. Otherwise, the AccessKey pair may be leaked and the security of all the resources within your account is compromised. In this example, the AccessKey pair is configured in the environment variables to verify your identify.
Use the endpoint of a Tablestore instance to create a client.
$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>" ));
The following table describes the parameters.
Parameter
Example
Description
EndPoint
https://myinstance.cn-hangzhou.ots.aliyuncs.com
The endpoint that is used to access the Tablestore instance. For more information about how to obtain the endpoint, see the Obtain the endpoint of a Tablestore instance section of this topic.
AccessKeyID
getenv('OTS_AK_ENV')
The AccessKey pair that is used to access the Tablestore instance. Obtain the AccessKey pair by using environment variables.
Make sure that the environment variables are configured. For more information, see the Configure an AccessKey pair section of this topic.
AccessKeySecret
getenv('OTS_SK_ENV')
InstanceName
myinstance
The name of the Tablestore instance that you want to access. For more information, see Instance.
Configure the OTSClient instance.
To modify the default configurations of the OTSClient instance, import the required parameters such as the proxy, connection timeout period, and maximum number of connections when you create the OTSClient instance. The following table describes the parameters that you can configure when you create the OTSClient instance.
Parameter
Description
ConnectionTimeout
The maximum latency allowed to connect to Tablestore, in seconds. Default value: 2.0.
StsToken
The STS token for temporary access.
This parameter is required if you use an STS token to access Tablestore. For more information about how to use an STS token, see Use an STS token.
SocketTimeout
The maximum latency allowed for the response to each request, in seconds. Default value: 2.0.
We recommend that you set this parameter to a large value when large volumes of data are transmitted.
RetryPolicy
The retry policy. Default value: DefaultRetryPolicy.
To disable the retry policy, set this parameter to null.
ErrorLogHandler
The function to process error logs, which is used to display the logs of errors returned by Tablestore. Default value: defaultOTSErrorLogHandler.
To disable the function, set this parameter to null.
DebugLogHandler
The function to process debug logs, which is used to display the logs of normal requests and responses. Default value: defaultOTSDebugLogHandler.
To disable the function, set this parameter to null.
FAQ
What do I do if the Signature mismatch error is reported when I use Tablestore SDKs?