资料介绍
ICS 35.240 CCS L 70
中 华 人 民 共 和 国 国 家 标 准
GB/T 43431—2023
信息技术 云数据存储和管理
基于对象的云存储应用接口测试方法
Information technology—Clouddatastorageand management—
Application programminginterfacetesting method ofobject-based cloud storage
2023-11-27发布 2024-06-01实施
国家市场监督管理总局国家标准化管理委员会
发
布
GB/T 43431—2023
目 次
前言 Ⅰ
1 范围 1
2 规范性引用文件 1
3 术语和定义 1
4 缩略语 2
5 通用测试环境 2
6 基于对象的云存储应用通用要求测试 2
6. 1 概述 2
6. 2 接口协议 2
6. 3 身份安全管理 2
6. 4 状态码信息描述 2
6. 5 出错信息描述要求 3
6. 6 访问控制 3
6. 7 补充出错信息 3
6. 8 公共请求头 3
6. 9 公共响应头 3
7 基于对象的云存储应用接口测试 3
7. 1 概述 3
7. 2 容器相关功能 3
7. 3 对象相关功能 5
GB/T 43431—2023
前 言
本文件按照 GB/T 1. 1—2020《标准化工作导则 第 1部分 :标准化文件的结构和起草规则》的规定起草 。
请注意本文件的某些内容可能涉及专利 。本文件的发布机构不承担识别专利的责任 。
本文件由全国信息技术标准化技术委员会(SAC/TC28)提出并归 口 。
本文件起草单位 :清华大学 、深圳赛西信息技术有限公司 、北京海致星图科技有限公司 、北京志凌海纳科技有限公司 、中国电子技术标准化研究院 、腾讯云计算(北京)有限责任公司 、中移(苏州) 软件技术有限公司 、中冶赛迪工程技术股份有限公司 、北京大有中城科技有限公司 、上海大学 、浪潮云信息技术股份公司 、飞诺门阵(北京)科技有限公司 、深圳市圣麾科技有限公司 、北京谷器数据科技有限公司 、中国电子科技集团公司第三研究所 。
本文件主要起草人 :武永 卫 、白 晓 颖 、陈 志 峰 、王 志 鹏 、姜 进 磊 、陈 康 、任 峰 、易 晶 晶 、杨 丽 蕴 、杨 娟 、徐文豪 、陈峥 、崔剑 、沈玉良 、李强 、郑斌 、费敏锐 、杜宇健 、张敏 、秦龙 、丁天舒 、沈寓实 、王运峰 、夏何均 、王溪 、董晓燕 、吴昕 、钟星立 、易开祥 、姚正斌 。
Ⅰ
GB/T 43431—2023
信息技术 云数据存储和管理
基于对象的云存储应用接口测试方法
1 范围
本文件给出了基于对象的云存储应用接口的通用测试环境 ,描述了基于对象的云存储应用通用要求测试方法和接口测试方法 。
本文件适用于基于对象的云存储应用接口的测试和研究应用 。
2 规范性引用文件
下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款 。其中 , 注 日期的引用文件 ,仅该日期对应的版本适用于本文件 ;不注日期的引用文件 ,其最新版本(包括所有的修改单) 适用于本文件 。
GB/T
31916. 1—2015
信息技术
云数据存储和管理
第 1部分 :总则
GB/T
31916. 2—2015
信息技术
云数据存储和管理
第 2部分 :基于对象的云存储应用接 口
3 术语和定义
下列术语和定义适用于本文件 。
3. 1
容器 container
基于对象的云存储中存储对象的逻辑空间 。
注 : 容器由容器名 、容器标识和元数据组成 。每个容 器 拥 有 一 个 全 球 唯 一 的 容 器 标 识 。通 过 容 器 标 识 可 唯 一 定 位到该容器 。容器是对容器内对象总体进行统计和访问控制的入口点 。
[来源 :GB/T 31916. 2—2015,3. 1. 1] 3.2
元数据 metadata
定义和描述其他数据的数据 。
[来源 :GB/T 31916. 1—2015,3. 1. 2] 3.3
对象 object
记录用户数据的数据单元 。
注 : 对象由对象名 、对象标识 、元数据和用户数据组成 。通过对象标识可唯一定位到该对象 。
[来源 :GB/T 31916. 1—2015,3. 1. 3] 3.4
基于对象的云存储 object-based cloud storage
对象存储
以对象作为存储单元 ,并提供对象级访问接口的云存储 。
[来源 :GB/T 31916. 1—2015,3. 1. 4]
1
GB/T 43431—2023
4 缩略语
下列缩略语适用于本文件 。
ACL:访问控制列表(Access Control List)
CPU : 中央处理器(CentralProcessing Unit)
HTTP:超文本传输协议(HypertextTransferProtocol)
5 通用测试环境
基于对象的云存储应用接口典型硬件测试环境应至少包括 : 1 台部署了基于对象的云存储接口服务器系统的服务器作为服务端 ; 1 台部署了基于对象的云存储接口客户 端 系 统 的 服 务 器 作 为 客 户 端 。测试环境配置要求如下 :服务器应满足 CPU 的核数不少于 8核 、内存容量不小于 16GB、磁盘容量不小于 512GB、网卡最大通信带宽不低于 100 Mbit/s。
6 基于对象的云存储应用通用要求测试
6. 1 概述
本章按照 GB/T 31916. 1—2015和 GB/T 31916. 2—2015 中基于对象的云存储应用接 口 的相关要求 ,分别从接口协议 、身份安全管理 、状态码信息描述 、出错信息描述要求 、访问控制 、补充出错信息 、公共请求头和公共响应头 8个方面 ,分别列出了相应的测试步骤 , 以验证基于对象的云存储应用接口对标准的符合性 。
6.2 接口协议
按照 GB/T 31916. 1—2015 中 5. 1 的内容 ,对接口协议的测试步骤如下 : 客户端向服务端发送任何符合 HTTP(RFC2616)的请求消息。检查是否收到符合 HTTP 的响应消息。
6.3 身份安全管理
按照 GB/T 31916. 1—2015 中 5. 2 的内容 ,对身份安全管理的测试步骤如下 。
a) 客户端填写合法的请求消息头和消息头附加域 ,且使用不正确的用户身份(AccessID) ,将产生的 HTTP请求消息发送到服务端。检查服务端返回 的 补 充 出 错 信 息 是 否 报 告“请 求 使 用 的AccessID不存在 ”。
b) 客户端填写合法的请求消息头和消息头附加域 ,且使用正确的用户身份(AccessID) ,但使用不正确的签名(Signature),将产生的 HTTP请求消息发送到服务端。检查服务端返回的补充出错信息是否报告 “系统计算的签名和请求中附带的签名不匹配 ”。
c) 客户端填写合法的请求消息头和消息头附加域 ,且同时使用正确的用户身份(AccessID) 和签名(Signature)组合,将产生的 HTTP请求消息发送到服务端。检查服务端是否返回正确的公共响应头 。
6.4 状态码信息描述
按照 GB/T 31916. 1—2015 中 5. 3 的内容 ,对状态码信息描述的测试步骤如下 : 客户端以任意组合调用 GB/T 31916. 2—2015 中 6. 2 和 6. 3所描述的每个接 口 。检查返回的状态码 、信息及信息描述组合是否符合 GB/T 31916. 1—2015 中表 1 的规定 。
2
GB/T 43431—2023
6.5 出错信息描述要求
按照 GB/T 31916. 1—2015 中 5. 4 的内容 ,对出错信息描述的测试步骤如下 :
a) 检查当 HTTP请求的处理出现错误,响应消息中是否给出标识相应错误的状态码;
b) 检查当 HTTP请求的处理出现错误且响应消息中包含出错信息描述,出错信息描述是否包含GB/T 31916. 1—2015 中表 2 的必选字段 。
6.6 访问控制
按照 GB/T 31916. 2—2015 中 5. 2 的内容 ,对访问控制的测试步骤如下 。
a) 以当前用户身份设置容器访问控制权限为 GB/T 31916. 2—2015 中表 A. 1 规定的任何 ACL信息 。检查拥有者 、当前用户及其他用户是否可以读取 、创建 、覆盖和删除该容器及下属对象 ,是否可以设置该容器及下属对象的访问控制权限 。
b) 以当前用户身份设置对象访问控制权限为 GB/T 31916. 2—2015 中表 A. 1 规定的任何 ACL信息 。检查拥有者 、当前用户及其他用户是否可以读取 、创建 、覆盖和删除该对象 ,是否可以设置该对象的访问控制权限 。
6.7 补充出错信息
按照 GB/T 31916. 2—2015 中 5. 3 的内容 ,对补充出错信息的测试步骤如下 :
a) 检查当请求消息的处理出现错误时 , 响应消息中是否给出标识相应错误的状态码 ;
b) 检查当请求消息的处理出现错误且响应消息中包含出错信息描述时 ,状态码 、出错名称和出错信息是否符合 GB/T 31916. 2—2015 中表 B. 1 的规定 。
6. 8 公共请求头
按照 GB/T 31916. 2—2015 中 5. 4 的 内 容 , 对 公 共 请 求 头 的 测 试 步 骤 如 下 : 检 查 客 户 端 发 出的HTTP请求消息是否包含 GB/T31916.2—2015中表 1列出的必选项且内容格式正确。
6.9 公共响应头
按照 GB/T 31916. 2—2015 中 5. 5 的 内 容 , 对 公 共 响 应 头 的 测 试 步 骤 如 下 : 检 查 服 务 端 发 出的HTTP 响应消息是否包含 GB/T31916.2—2015中表 2列出的必选项且内容格式正确。
7 基于对象的云存储应用接口测试
7. 1 概述
本章针对 GB/T 31916. 2—2015 中 6. 2 和 6. 3所描述的每个接 口 ,分别列出了相应的测试步骤 。
7.2 容器相关功能
7.2. 1 创建容器
按照 GB/T 31916. 2—2015 中 6. 2. 1 的内容 ,对创建容器接口的测试步骤如下 。
a) 客户端调用创建容器接 口 ,且容器标识符与服务端的任何容器均不匹配 。检查是否返回正确的公共响应头 , 响应状态码是否为 201,且服务端是否实际产生相应新容器 。
b) 客户端调用创建容器接 口 ,容器标识符与服务端的某个容器匹配 。检查响应消息的出错信息是否为 “对象集名称已被占用 ”,且服务端是否不执行任何容器和/或对象的变更操作 。
3
GB/T 43431—2023
7.2.2 删除容器
按照 GB/T 31916. 2—2015 中 6. 2. 2 的内容 ,对删除容器接口的测试步骤如下 。
a) 客户端调用删除容器接 口 ,容器标识符与服务端的某个容器匹配 ,且容器为空 。检查是否返回正确的公共响应头 , 响应状态码是否为 204,且服务端是否实际删除相应容器 。
b) 客户端调用删除容器接 口 ,容器标识符与服务端的某个容器匹配 ,且容器非空 。检查响应消息的出错信息是否为 “被删除的对象集非空 ”,且服务端是否不执行任何容器和/或对象 的 变 更操作 。
c) 客户端调用删除容器接 口 ,且容器标识符与服务端的任何容器均不匹配 。检查响应消息的出错信息是否为 “请求的对象集不存在 ”,且服务端是否不执行任何容器和/或对象的变更操作 。
7.2.3 获取用户所有容器
按照 GB/T 31916. 2—2015 中 6. 2. 3 的内容 ,对获取用户所有容器接 口 的测试步骤如下 : 客户端调用获取用户所有容器接 口 。检查是否返回正确的公共响应头 , 响应状态码是否为 200, 响应消息体是否包含用户创建的所有容器信息 ,是否不包含其他用户创建的任何容器信息 。
7.2.4 获取容器中对象列表
按照 GB/T 31916. 2—2015 中 6. 2. 4 的内容 ,对获取容器中对象列表接口的测试步骤如下 。
a) 客户端调用获取容器中对象列表接 口 ,且容器标识符与服务端的某个容器匹配 ,用户具有该容器的读权限 。检查是否返回正确的公共响应头 , 响应状态码是否为 200,服务端是否正确列出所有对象的元数据 。
b) 客户端调用获取容器中对象列表接 口 ,在请求消息中指定前缀约束 、对象数量上限和按字典序首元素 ,且容器标识符与服务端的某个容器匹配 ,用户具有该容器的读权限 。检查是否返回正确的公共响应头 , 响应状态码是否为 200,且服务端是否正确列出所有符合指定条件的对象的元数据 。
c) 客户端调用获取容器中对象列表接 口 ,且容器标识符与服务端的某个容器匹配 ,但当前用户不具备对该容器的读权限 。检查响应消息的出错信息是否为 “执行操作时权限不够 ”,是否不返回任何对象的元数据 。
d) 客户端调用获取容器中对象列表接 口 ,且容器标识符与服务端的任何容器均不匹配 。检查响应消息的出错信息是否为 “请求的对象集不存在 ”,是否不返回任何对象的元数据 。
7.2.5 获取容器权限
按照 GB/T 31916. 2—2015 中 6. 2. 5 的内容 ,对获取容器权限接口测试步骤如下 。
a) 客户端调用获取容器权限接 口 ,容器标识符与服务端的某个容器匹配 ,且用户具有该容器的读ACL信息的权限 。检查是否返回正确的公共响应头 , 响应状态码是否为 200,且服务端是否正确列出容器当前权限 。
b) 客户端调用获取容器权限接 口 ,容器标识符与服务端的某个容器匹配 ,但用户不具有该容器的读 ACL信息的权限 。检查响应消息的出错信息是否为 “执行操作时权限不够 ”。
c) 客户端调用获取容器权限接 口 ,且容器标识符与服务端的任何容器均不匹配 。检查响应消息的出错信息是否为 “请求的对象集不存在 ”。
7.2.6 设置容器权限
按照 GB/T 31916. 2—2015 中 6. 2. 6 的内容 ,对设置容器权限接口测试步骤如下 。
4
GB/T 43431—2023
a) 客户端调用设置容器权限接 口 ,容器标识符与服务端的某个容器匹配 ,且用户具有该容器的写ACL信息的权限 。检查是否返回正确的公共响应头 , 响应状态码是否为 200,且服务端是否正确设置容器当前权限 。
b) 客户端调用设置容器权限接 口 ,容器标识符与服务端的某个容器匹配 ,但用户不具有该容器的写 ACL信息的权限 。检查响应消息的出错信息是否为 “执行操作时权限不够 ”,是否不执行任何容器和/或对象的权限更新操作 。
c) 客户端调用设置容器权限接 口 ,且容器标识符与服务端的任何容器均不匹配 。检查响应消息的出错信息是否为 “请求的对象集不存在 ”,是否不执行任何容器和/或对象的权限更新操作 。
7.3 对象相关功能
7.3. 1 创建对象
按照 GB/T 31916. 2—2015 中 6. 3. 1 的内容 ,对创建对象接口测试步骤如下 。
a) 客户端调用创建对象接 口 , 容器标识符与服务端的某个容器匹配 ,且用户具有该容器的写权限 ,对象标识符与服务端上该容器的所有对象均不匹配 。检查是否返回正确的公共响应头 , 响应状态码是否为 201,服务端是否正确在容器中完整创建该对象 。
b) 客户端调用创建对象接 口 , 容器标识符与服务端的某个容器匹配 ,且用户具有该容器的写权限 ,对象标识符与服务端上该容器某个对象匹配 。检查是否返回正确的公共响应头 , 响应状态码是否为 201,服务端是否正确在容器中覆盖原有的对象 。
c) 客户端调用创建对象接 口 ,容器标识符与服务端的某个容器匹配 ,但用户不具有该容器的写权限 。检查响应消息的出错信息是否为 “执行操作时权限不够 ”,是否不执行任何容器和/或对象的变更操作 。
d) 客户端调用创建对象接 口 ,且容器标识符与服务端的任何容器均不匹配 。检查响应消息的出错信息是否为 “请求的对象集不存在 ”,是否不执行任何容器和/或对象的变更操作 。
7.3.2 删除对象
按照 GB/T 31916. 2—2015 中 6. 3. 2 的内容 ,对删除对象接口测试步骤如下 。
a) 客户端调用删除对象接 口 , 容器标识符与服务端的某个容器匹配 ,且用户具有该容器的写权限 ,对象标识符与服务端上该容器某个对象匹配 。检查是否返回正确的公共响应头 , 响应状态码是否为 204,服务端是否正确在容器中删除该对象 。
b) 客户端调用删除对象接 口 , 容器标识符与服务端的某个容器匹配 ,且用户具有该容器的写权限 ,对象标识符与服务端上该容器的所有对象均不匹配 。检查响应消息的出错信息是否为 “对象标识符不存在 ”,是否不执行任何容器和/或对象的变更操作 。
c) 客户端调用删除对象接 口 ,容器标识符与服务端的某个容器匹配 ,但用户不具有该容器的写权限 。检查响应消息的出错信息是否为 “执行操作时权限不够 ”,是否不执行任何容器和/或对象的变更操作 。
d) 客户端调用删除对象接 口 ,且容器标识符与服务端的任何容器均不匹配 。检查响应消息的出错信息是否为 “请求的对象集不存在 ”,是否不执行任何容器和/或对象的变更操作 。
7.3.3 获取对象
按照 GB/T 31916. 2—2015 中 6. 3. 3 的内容 ,对获取对象接口测试步骤如下 。
a) 客户端调用获取对象接 口 ,容器标识符与服务端的某个容器匹配 ,对象标识符与服务端上该容器某个对象匹配 ,且用户具有该对象的读权限 。检查是否返回正确的公共响应头 , 响应状态码
5
GB/T 43431—2023
是否为 200,客户端是否收到了完整的对象数据 。
b) 客户端调用获取对象接 口 ,容器标识符与服务端的某个容器匹配 ,对象标识符与服务端上该容器某个对象匹配 ,消息附加域包含了读取数据的字节范围信息 ,且用户具有该对象的读权限 。检查是否返回正确的公共响应头 , 响应状态码是否为 200,客户端是否收到了相应范围的对象数据 。
c) 客户端调用获取对象接 口 ,容器标识符与服务端的某个容器匹配 ,对象标识符与服务端上该容器某个对象匹配 ,但用户不具有该对象的读权限 。检查响应消息的出错信息是否为 “执行操作时权限不够 ”,是否不返回任何对象数据 。
d) 客户端调用获取对象接 口 ,容器标识符与服务端的某个容器匹配 ,对象标识符与服务端上该容器的所有对象均不匹配 。检查响应消息的出错信息是否为 “对象标识符不存在 ”,是否不返回任何对象数据 。
e) 客户端调用获取对象接 口 ,且容器标识符与服务端的任何容器均不匹配 。检查响应消息的出错信息是否为 “请求的对象集不存在 ”,是否不返回任何对象数据 。
7.3.4 获取对象属性
按照 GB/T 31916. 2—2015 中 6. 3. 4 的内容 ,对获取对象属性接口测试步骤如下 。
a) 客户端调用获取对象属性接 口 ,容器标识符与服务端的某个容器匹配 ,对象标识符与服务端上该容器某个对象匹配 ,且用户具有该对象的读权限 。检查是否返回正确的公共响应头 , 响应状态码是否为 200,客户端是否在响应头收到了完整的对象属性数据 。
b) 客户端调用获取对象属性接 口 ,容器标识符与服务端的某个容器匹配 ,对象标识符与服务端上该容器某个对象匹配 ,但用户不具有该对象的读权限 。检查响应消息的出错信息是否为 “执行操作时权限不够 ”,是否不返回任何对象属性数据 。
c) 客户端调用获取对象属性接 口 ,容器标识符与服务端的某个容器匹配 ,对象标识符与服务端上该容器的所有对象均不匹配 。检查响应消息的出错信息是否为 “对象标识符不存在 ”,是否不返回任何对象属性数据 。
d) 客户端调用获取对象属性接 口 ,且容器标识符与服务端的任何容器均不匹配 。检查响应消息的出错信息是否为 “请求的对象集不存在 ”,是否不返回任何对象属性数据 。
7.3.5 设置对象属性
按照 GB/T 31916. 2—2015 中 6. 3. 5 的内容 ,对获取对象属性接口测试步骤如下 。
a) 客户端调用设置对象属性接 口 ,容器标识符与服务端的某个容器匹配 ,且用户具有该容器的写权限 ,对象标识符与服务端上该容器某个对象匹配 。检查是否返回正确的公共响应头 , 响应状态码是否为 200,服务端是否正确在容器中正确设置对象属性 。
b) 客户端调用设置对象属性接 口 ,容器标识符与服务端的某个容器匹配 ,且用户具有该容器的写权限 ,对象标识符与服务端上该容器的所有对象均不匹配 。检查响应消息的出错信息是否为“对象标识符不存在 ”,是否不执行任何容器和/或对象的变更操作 。
c) 客户端调用设置对象属性接 口 ,容器标识符与服务端的某个容器匹配 ,但用户不具有该容器的写权限 。检查响应消息的出错信息是否为 “执行操作时权限不够 ”,是否不执行任何容器和/或对象的变更操作 。
d) 客户端调用设置对象属性接 口 ,且容器标识符与服务端的任何容器均不匹配 。检查响应消息的出错信息是否为 “请求的对象集不存在 ”,是否不执行任何容器和/或对象的变更操作 。
7.3.6 获取对象权限
按照 GB/T 31916. 2—2015 中 6. 3. 6 的内容 ,对获取对象权限接口测试步骤如下 。
6
GB/T 43431—2023
a) 客户端调用获取对象权限接 口 ,容器标识符与服务端的某个容器匹配 ,对象标识符与服务端上该容器某个对象匹配 ,且用户具有该对象的读 ACL信息的权限 。检查是否返回正确的公共响应头 , 响应状态码是否为 200,客户端是否在响应头收到了当前对象权限 。
b) 客户端调用获取对象权限接 口 ,容器标识符与服务端的某个容器匹配 ,对象标识符与服务端上该容器某个对象匹配 ,但用户不具有该对象的读 ACL信息的权限 。检查响应消息的出错信息是否为 “执行操作时权限不够 ”,是否不返回任何对象权限数据 。
c) 客户端调用获取对象权限接 口 ,容器标识符与服务端的某个容器匹配 ,但对象标识符与服务端上该容器的所有对象均不匹配 。检查响应消息的出错信息是否为 “对象标识符不存在 ”,是否不返回任何对象权限数据 。
d) 客户端调用获取对象权限接 口 ,且容器标识符与服务端的任何容器均不匹配 。检查响应消息的出错信息是否为 “请求的对象集不存在 ”,是否不返回任何对象权限数据 。
7.3.7 设置对象权限
按照 GB/T 31916. 2—2015 中 6. 3. 7 的内容 ,对设置对象权限接口测试步骤如下 。
a) 客户端调用设置对象权限接 口 ,容器标识符与服务端的某个容器匹配 ,对象标识符与服务端上该容器某个对象匹配 ,且用户具有该对象的写 ACL信息的权限 。检查是否返回正确的公共响应头 , 响应状态码是否为 200,服务端是否正确设置该对象权限 。
b) 客户端调用设置对象权限接 口 ,容器标识符与服务端的某个容器匹配 ,对象标识符与服务端上该容器某个对象匹配 ,但用户不具有该对象的写 ACL信息的权限 。检查响应消息的出错信息是否为 “执行操作时权限不够 ”,是否不执行任何容器和/或对象的权限更新操作 。
c) 客户端调用设置对象权限接 口 ,容器标识符与服务端的某个容器匹配 ,但对象标识符与服务端上该容器的所有对象均不匹配 。检查响应消息的出错信息是否为 “对象标识符不存在 ”,是否不执行任何容器和/或对象的权限更新操作 。
d) 客户端调用设置对象权限接 口 ,且容器标识符与服务端的任何容器均不匹配 。检查响应消息的出错信息是否为 “请求的对象集不存在 ”,是否不执行任何容器和/或对象的权限更新操作 。
相关推荐
- GB/T 20139.1-2016 电气绝缘系统 已确定等级的电气绝缘系统(EIS)组分调整的热评定 第1部分:散绕绕组EIS
- GB/T 41515-2022 涂布机术语
- GB/T 37243-2019 危险化学品生产装置和储存设施外部安全防护距离确定方法
- GB/T 27050.2-2006 合格评定 供方的符合性声明 第2部分:支持性文件
- GB/T 5621-2008 凿岩机械与气动工具 性能试验方法
- GB/Z 41305.1-2022 环境条件 电子设备振动和冲击 第1部分:动力学数据的验证过程
- GB 55037-2022 建筑防火通用规范
- GB/T 41749-2022 热轧型钢表面质量一般要求
- GB∕T 40383-2021 商品级双辊铸轧热轧碳素钢薄钢板及钢带
- GB/T 32533-2016 高强钢焊条


