路径: 主页 > GB/T > 第213页 > GB/T 31916.2-2015
| 标准编号 | GB/T 31916.2-2015 (GB/T31916.2-2015) | | 中文名称 | 信息技术 云数据存储和管理 第2部分:基于对象的云存储应用接口 | | 英文名称 | Information Technology - Cloud Data Storage and Management - Part 2: Object-based Cloud Storage Application Interface | | 行业 | 国家标准 (推荐) | | 中标分类 | L79 | | 国际标准分类 | 35.100.05 | | 字数估计 | 30,355 | | 发布日期 | 2015-09-11 | | 实施日期 | 2016-05-01 | | 引用标准 | GB/T 7408-2005; GB/T 26231-2010; GB/T 31916.1-2015; RFC 822 ARPA; RFC 2616 | | 标准依据 | 国家标准公告2015年第25号 | | 发布机构 | 中华人民共和国国家质量监督检验检疫总局、中国国家标准化管理委员会 | | 范围 | GB/T 31916的本部分给出了基于对象的云数据存储(以下简称云存储)体系结构, 规定了基于对象的云存储的应用接口通用要求和应用接口定义。本部分适用于基于对象的云存储的设计、开发和使用。 |
GB/T 31916.2-2015
Information technology - Cloud data storage and management - Part 2: Object-based cloud storage application interface
ICS 35.100.05
L79
中华人民共和国国家标准
信息技术 云数据存储和管理
第2部分:基于对象的云存储应用接口
2015-09-11发布
2016-05-01实施
中华人民共和国国家质量监督检验检疫总局
中国国家标准化管理委员会发布
目次
前言 Ⅰ
1 范围 1
2 规范性引用文件 1
3 术语、定义和缩略语 1
3.1 术语和定义 1
3.2 缩略语 1
4 基于对象的云存储体系结构 2
5 基于对象的云存储应用接口通用要求 2
5.1 概述 2
5.2 访问控制 3
5.3 补充出错信息 3
5.4 公共请求头 3
5.5 公共响应头 3
6 基于对象的云存储应用接口定义 4
6.1 概述 4
6.2 容器相关功能 4
6.3 对象相关功能 14
附录A(规范性附录) 基于ACL的访问控制 25
附录B(规范性附录) 补充出错信息 26
前言
GB/T 31916《信息技术 云数据存储和管理》分为六个部分:
---第1部分:总则;
---第2部分:基于对象的云存储应用接口;
---第3部分:分布式文件存储应用接口;
---第4部分:基于块的云存储应用接口;
---第5部分:基于键值(Key-Value)的云数据管理应用接口;
---第6部分:分布式关系数据库应用接口。
本部分为GB/T 31916的第2部分。
本部分按照GB/T 1.1-2009给出的规则起草。
请注意本文件的某些内容可能涉及专利。本文件的发布机构不承担识别这些专利的责任。
本部分由全国信息技术标准化技术委员会(SAC/TC28)提出并归口。
本部分起草单位:中国移动通信有限公司研究院、东北大学软件学院、华为技术有限公司、上海计算
机软件技术开发中心、中国电子技术标准化研究院、浪潮(北京)电子信息产业有限公司、阿里云计算有
限公司、中兴通讯股份有限公司、华中科技大学。
本部分主要起草人:孙少陵、李海波、杜宇健、宋杰、王洁萍、余祥、王姝、蔡立志、陈岭、颜秉珩、
李战园、刘晓辉、周可、胡捷、吴涛、张东、田忠、秦习庆、王娟、陈志峰、王卫国、丛培勇、杨丽蕴。
信息技术 云数据存储和管理
第2部分:基于对象的云存储应用接口
1 范围
GB/T 31916的本部分给出了基于对象的云数据存储(以下简称云存储)体系结构,规定了基于对
象的云存储的应用接口通用要求和应用接口定义。
本部分适用于基于对象的云存储的设计、开发和使用。
2 规范性引用文件
下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅注日期的版本适用于本文
件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。
GB/T 7408-2005 数据元和交换格式 信息交换 日期和时间表示法
GB/T 26231-2010 信息技术 开放系统互连 OID的国家编号体系和注册规程
GB/T 31916.1-2015 信息技术 云数据存储和管理应用接口 第1部分:总则
Messages)
3 术语、定义和缩略语
3.1 术语和定义
GB/T 31916.1-2015界定的以及下列术语和定义适用于本文件。
3.1.1
容器 container
基于对象的云存储中存储对象的逻辑空间。
注:容器由容器名、容器标识和元数据组成。每个容器拥有一个全球唯一的容器标识。通过容器标识可唯一定位
到该容器。容器是对容器内对象总体进行统计和访问控制的入口点。
3.1.2
配额 quota
为用户分配的系统资源最大使用量。
3.2 缩略语
下列缩略语适用于本文件。
ACL 访问控制列表(AccessControlList)
4 基于对象的云存储体系结构
基于对象的云存储体系结构如图1所示。
图1 基于对象的云存储体系结构
基于对象的云存储由接口层、服务层和存储层构成。接口层通过 WEB服务为应用系统提供基于
HTTP协议的对象存储服务。服务层实现对象、容器及用户的相关功能。用户的实际数据保存在对象
中,容器为对象的逻辑存储空间。每个对象应属于一个容器。对象和容器之间的关系如图2所示。
图2 对象和容器之间的关系
用户相关功能包括用户身份认证管理和访问控制。通过用户身份认证管理保证只有合法用户才能访
问基于对象的云存储。完成用户身份安全管理后,通过访问控制进行用户状态、配额和操作权限的管理。
存储层为服务层提供基础的存储空间。存储层应采用可扩展的存储架构,具体存储技术应对外部
应用透明。
5 基于对象的云存储应用接口通用要求
5.1 概述
基于对象的云存储应用接口通用要求包括接口协议、身份认证管理、访问控制、状态码信息描述、补
充出错信息、公共请求头、公共响应头和出错信息描述要求8项内容。其中,接口协议、身份认证管理、
状态码信息描述和出错信息描述要求4项内容应符合GB/T 31916.1-2015中第5章规定。
5.2 访问控制
基于对象的云存储应提供访问控制机制,可通过ACL等方式进行访问控制管理。
基于ACL的访问控制见附录A。
5.3 补充出错信息
基于对象的云存储发生的出错响应较为复杂,需要对HTTP状态码补充出错信息描述。补充出错
信息格式符合GB/T 31916.1-2015中5.4的要求。
补充出错信息描述见附录B。
5.4 公共请求头
基于对象的云存储应用接口的时间格式按GB/T 7408-2005规定的格式。
HTTP请求头格式描述见表1(见RFC2616)。
表1 公共请求头
名称 描述 选择状态
Host 主机信息,如:obs.china.com 必选
Content-Length 请求消息内容长度(不含消息头)
对于有内容的请求,如PUT操作,
本参数为必选;无内容的请求,如
DELETE操作,本参数为可选
Content-Type 表示文档 MIME类型 可选
Date
消息发送的时间,时间的描述格式由RFC822定义,如:Sun,
18Nov200606:12:00GMT
必选
Authorization
授权信息,包含鉴权方信息,由用户AccessID和Signature信
息组成,如:Authorization="OBS"+""+ AccessID +
":"+Signature
必选
x-OBS-date
用户设置的请求发起时间,如果该扩展项被设置,系统则忽
略Date头域的时间,并且签名计算时Date头域使用空串
可选
5.5 公共响应头
基于对象的云存储应用接口的HTTP公共响应头格式描述见表2。
表2 公共响应头
名称 描述 选择状态
Content-Length 响应消息内容长度(不含消息头)
对于有内容的响应,本参数为必选;对
于无内容的响应,本参数为可选
Content-Type 表示响应文档属于什么 MIME类型 可选
Date
消息响应的时间,时间的描述格式由RFC822定义,如:
Sun,18Nov200606:12:00GMT
必选
Server 处理请求的原始服务器的信息 可选
6 基于对象的云存储应用接口定义
6.1 概述
基于对象的云存储应用接口包括容器相关功能和对象相关功能。
容器相关功能应包括:
a) 创建容器;
b) 删除容器;
c) 获取用户所有容器;
d) 获取容器中对象列表。
当采用ACL方式进行用户访问控制时,容器相关功能还应包括:
e) 获取容器权限;
f) 设置容器权限。
对象相关功能应包括:
a) 创建对象;
b) 删除对象;
c) 获取对象;
d) 获取对象属性;
e) 设置对象属性。
当采用ACL方式进行用户访问控制时,对象相关功能还应包括:
f) 获取对象权限;
g) 设置对象权限。
6.2 容器相关功能
6.2.1 创建容器
6.2.1.1 功能描述
用户创建一个容器标识符全局唯一的空容器。容器标识符宜采用 URI方式,也可采用
GB/T 26231-2010规定的OID方式。
6.2.1.2 请求消息头
PUT/ContainerNameHTTP/1.1
6.2.1.3 请求参数
无。
6.2.1.4 消息头附加域
消息头附加域应包含信息见表3。
表3 消息头附加域信息
名称 类型 描述 选择状态
x-OBS-acl 字符串 访问权限 可选
6.2.1.5 请求体参数
请求体参数应包含信息见表4。
表4 请求体参数信息
名称 类型 描述 选择状态
ContainerConfigura-
标签
包含所创建容器的配置信息;
父标签:无
可选
LocationInformation 字符串
所创建容器的位置信息;
可选
6.2.1.6 响应消息代码
如果创建容器成功,返回状态码201;如果失败,根据原因设置状态码和附加出错信息。
6.2.1.7 响应参数
无。
6.2.1.8 响应消息体参数
无。
6.2.1.9 消息示例
请求消息见示例1。
示例1:
Host:obs.china.com
Content-Length:0
Date:Sun,6Feb201118:10:00GMT
< LocationInformation >Region03< /LocationInformation >
响应消息见示例2。
示例2:
HTTP/1.1201Created
Date:Sun,6Feb201118:10:00GMT
Content-Length:0
Server:ObsServer
6.2.2 删除容器
6.2.2.1 功能描述
用户删除一个空的容器。如果容器中存在对象,则删除失败。
6.2.2.2 请求消息头
DELETE/ContainerNameHTTP/1.1
6.2.2.3 请求参数
无。
6.2.2.4 消息头附加域
无。
6.2.2.5 请求体参数
无。
6.2.2.6 响应消息代码
状态码根据定义返回,成功为204;如果失败,根据原因设置状态码和附加出错信息。
6.2.2.7 响应参数
无。
6.2.2.8 响应消息体参数
无。
6.2.2.9 消息示例
请求消息见示例1。
示例1:
Host:obs.china.com
Date:Sun,6Feb201118:10:00GMT
响应消息见示例2。
示例2:
HTTP/1.1204NoContent
Date:Wed,01Mar200912:00:00GMT
Server:ObsServer
6.2.3 获取用户所有容器
6.2.3.1 功能描述
用户获取自己账户下的容器列表,包括每个容器的相关信息。
6.2.3.2 请求消息头
GET/HTTP/1.1
6.2.3.3 请求参数
无。
6.2.3.4 消息头附加域
无。
6.2.3.5 请求体参数
无。
6.2.3.6 响应消息代码
状态码根据定义返回,成功为200;如果失败,根据原因设置状态码和补充出错信息。
6.2.3.7 响应参数
无。
6.2.3.8 响应消息体参数
响应消息体参数应包含信息见表5。
表5 响应消息体参数信息
名称 类型 描述 选择状态
ContainerList 标签
包含所获取的全部容器信息;
父标签:无
必选
Owner 标签
包含所获取容器的拥有者信息;
父标签:ContainerList
必选
ID 字符串
包含所获取容器的拥有者ID信息;
父标签:ContainerList\Owner
必选
Containers 标签
包含所有获取的容器信息;
父标签:ContainerList
必选
Container 标签
包含获取的一个容器信息;
父标签:ContainerList\Containers
必选
ContainerName 字符串
一个容器名信息;
父标签:ContainerList\Containers\Container
必选
CreationDate 字符串
容器创建时间;
父标签:ContainerList\Containers\Container;
描述格式由RFC822定义,如:Sun,18Nov200606:12:00GMT
必选
6.2.3.9 消息示例
请求消息见示例1。
示例1:
GET/HTTP/1.1
Host:obs.china.com
Date:Sun,6Feb201118:10:00GMT
消息响应见示例2。
示例2:
HTTP/1.1200OK
Date:Sun,6Feb201118:10:00GMT
Content-Length:322
Server:ObsServer
< ContainerList >
< Owner >
< ID >Frank< /ID >
< /Owner >
< Containers >
< Container >
< ContainerName >MyPictureFolder< /ContainerName >
< CreationDate >Sun,6Feb201101:30:00GMT< /CreationDate >
< /Container >
< Container >
< ContainerName >MyDocumentFolder< /ContainerName >
< CreationDate >Sun,6Feb201102:30:00GMT< /CreationDate >
< /Container >
< /Containers >
< /ContainerList >
6.2.4 获取容器中对象列表
6.2.4.1 功能描述
用户获取容器中所有对象的列表,并可通过输入参数对结果集合进行筛选。此操作每次返回以字
典序排序的指定数量的对象结果集,指定数量的上限由服务提供商确定。用户应对容器有读访问权限,
否则无法获取结果。
6.2.4.2 请求消息头
GET/ContainerName? prefix=prefix&maxResults=maxResults&marker=markerHTTP/1.1
6.2.4.3 请求参数
请求参数应包含信息见表6。
表6 请求参数信息
名称 类型 描述 选择状态
Prefix 字符串 此参数规定了返回结果集中对象URI的前缀 可选
maxResults 整数
此参数规定了返回结果集的对象数量上限。如果满足参数的结果
集对象数量超过 maxResults值,超出的部分将会被截断,同时在返
回体中设置< Truncated >true< /T runcated >标签
可选
Marker 字符串
此参数指定了对象 URI的起始值(marker类似一个基于字符串类
型的游标)。由于受到了 maxResults的限制,对于不能一次返回所
有符合查询条件的请求,客户端可以通过设置 marker为上次调用
请求的最后一个对象ID值,使得该次调用请求从上次调用请求的
最后一个对象ID值的下一个位置进行继传
可选
6.2.4.4 消息头附加域
无。
6.2.4.5 请求体参数
无。
6.2.4.6 响应消息代码
状态码根据定义返回,成功为200;如果失败,根据原因设置状态码和补充出错信息。
6.2.4.7 响应参数
无。
6.2.4.8 响应消息体参数
响应消息体参数应包含信息见表7。
表7 响应消息体参数信息
名称 类型 描述 选择状态
ListObjectsResult 标签
获取容器中对象列表;
父标签:无
必选
ContainerName 字符串
容器URI;
父标签:ListObjectsResult
可选
Prefix 字符串
对象URI前缀;
父标签:ListObjectsResult
可选
MaxResults 字符串
结果集对象数量上限;
父标签:ListObjectsResult
可选
Marker 字符串
对象URI的起始值;
父标签:ListObjectsResult
可选
IsTruncated 字符串
返回结果是否是所有结果;
父标签:ListObjectsResult
可选
ObjectList 标签
结果集对象列表;
父标签:ListObjectsResult
必选
ObjectUnit 标签
结果集中的对象;
父标签:ListObjectsResult\ObjectList
必选
ObjectURI 字符串
对象名称;
父标签:ListObjectsResult\ObjectList\ObjectUnit
必选
SystemMetadata 标签
结果集中的对象的系统属性;
父标签:ListObjectsResult\ObjectList\ObjectUnit
必选
Ctime 字符串
对象创建时间;
父标签:ListObjectsResult\ObjectList\ObjectUnit\SystemMetadata
必选
Size 字符串
对象大小;
父标签:ListObjectsResult\ObjectList\ObjectUnit\SystemMetadata
必选
6.2.4.9 消息示例
请求消息见示例1。
示例1:
GET/MyPicture? prefix=cloud&maxResults=50HTTP/1.1
Host:obs.china.com
Date:Wed,25Nov200912:00:00GMT
消息响应见示例2。
示例2:
HTTP/1.1200OK
Date:Wed,01Mar200912:00:00GMT
Content-Length:236
Server:ObsServer
< ListObjectsResult......
|