应用程序可以使用阿里云官方发布的表格存储 SDK 来访问表格存储,也可以通过 POST 方法发送 HTTP 请求来访问表格存储。
以下将介绍 HTTP 请求结构和数据格式,以及如何构造 HTTP 请求和解析 HTTP 请求的返回结果。最后介绍表格存储请求返回的错误状态码。Java,Python,C++,Go,Node.JS和C# 语言的开发者可使用官方SDK。如果需要使用其他语言访问表格存储,可以根据本章内容使用 HTTP 消息与表格存储进行交互,也可以自行编写 SDK。
当前表格存储的 API 版本
API Version: 2015-12-31
HTTP 消息
表格存储接收应用程序的 HTTP 请求,执行相应的逻辑并以 HTTP 消息返回处理后的结果数据。HTTP 请求和响应中的数据通过 ProtocolBuffer 协议格式进行组织,关于 ProtocolBuffer 协议的更多内容,请参见
表格存储 ProtocolBuffer 消息定义。下面分别介绍 HTTP 请求的 header 和 body, 以及响应的具体格式。
HTTP Request
HTTP Request URL
访问表格存储的 URL 由以下方式构成:
外网访问 URL:http://<instance>.<region>.ots.aliyuncs.com/<operation>
内网访问 URL:http://<instance>.<region>.ots-internal.aliyuncs.com/<operation>
参数说明如下:
参数 | 说明 | 大小写 |
instance | 实例名称。实例由用户创建,可以在表格存储控制台查看云账户下拥有的实例信息。 | 不敏感 |
region | 阿里云服务地域。表格存储服务会部署在多个地理位置不同的阿里云服务地域内。创建实例时需要指定阿里云地域,可以在表格存储控制台查看实例所在的地域名称。 | 不敏感 |
operation | 表格存储操作名称。可以在 API 操作总览查看所有的表格存储操作名。 | 敏感 |
Signature = base64(HmacSha1(AccessKeySecret, StringToSign));
StringToSign = CanonicalURI + '\n' + HTTPRequestMethod + '\n\n' + CanonicalHeaders
CanonicalHeaders = LowerCase (HeaderName1) + ':' + Trim(HeaderValue1) + '\n' + ... + LowerCase (HeaderNameN) + ':' + Trim(HeaderValueN) + '\n'
函数 | 说明 |
HmacSha1 | Hmac-Sha1 加密算法。计算表格存储请求签名时,将 StringToSign 作为消息,AccessKeySecret 作为密钥。 |
base64 | base64 编码算法。 |
LowerCase | 将字符串中的字母全部变成小写。 |
Trim | 去除字符串首尾处的空白字符。 |
http://myInstance.cn-hangzhou.ots.aliyuncs.com/ListTable
[backcolor=transparent]注意:POST 需要大写。
Authorization = 'OTS ' + AccessKeyID + ':' + base64(HmacSha1(AccessKeySecret, stringToSign))
StringToSign = CanonicalHeaders + CanonicalURI
CanonicalHeaders = LowerCase (HeaderName1) + ':' + Trim(HeaderValue1) + '\n' + ... + LowerCase (HeaderNameN) + ':' + Trim(HeaderValueN) + '\n'
http://myInstance.cn-hangzhou.ots.aliyuncs.com/ListTable
POST /ListTable HTTP/1.0
x-ots-date: 2017-09-21T08:32:07.000Z
x-ots-apiversion:2015-12-31
x-ots-accesskeyid: LTAIhGbDGGOYJDZt
x-ots-contentmd5: 1B2M2Y8AsgTpgAmY7PhCfg==
x-ots-instancename: first
stringToSign = '/ListTable\nPOST\n\nx-ots-accesskeyid:LTAIhGbDGGOYJDZt\nx-ots-apiversion:2015-12-31\nx-ots-contentmd5:1B2M2Y8AsgTpgAmY7PhCfg==\nx-ots-date:2017-09-21T08:32:07.000Z\nx-ots-instancename:first\n'
signature = base64(HmacSha1('DomcqbBGOyYNWue3DlVArEUBeSlpE', stringToSign))
= FjtBHd8FeB021PwTQI+XI/VMM24=
/ListTable
x-ots-contentmd5: 1B2M2Y8AsgTpgAmY7PhCfg==
x-ots-requestid: 000559ae-ed86-f416-0d88-990a09ec9ed2
x-ots-contenttype: protocol buffer
x-ots-date:2017-09-21T08:32:07.815799Z
stringToSign = 'x-ots-contentmd5:1B2M2Y8AsgTpgAmY7PhCfg==\nx-ots-contenttype:protocol buffer\nx-ots-date:2017-09-21T08:32:07.815799Z\nx-ots-requestid:000559ae-ed86-f416-0d88-990a09ec9ed2\n/ListTable'
authorization = 'OTS ' + AccessKeyID + ':' + base64(HmacSha1('DomcqbBGOyYNWue3DlVArEUBeSlpE', stringToSign))
= 'OTS LTAIhGbDGGOYJDZt:LTktOlJYRenAGIpMn41zIab0ut0='
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。