admin 管理员组文章数量: 1086019
2024年4月17日发(作者:dreamweaver8序列号)
腾讯云对象存储(COS)服务的 API
注意:
此文档仅适用于 COS XML 版本,版本可登陆后在 COS 控制台首页查看。此文档不
适用于 POST object 的 HTTP 请求。
使用对象存储服务 COS 时,可通过 RESTful API 对 COS 发起 HTTP 匿名请求或
HTTP 签名请求,对于签名请求,COS 服务器端将会进行对请求发起者的身份验证。
匿名请求:HTTP 请求不携带任何身份标识和鉴权信息,通过 RESTful API 进行
HTTP 请求操作。签名请求:HTTP 请求时添加签名,COS服务器端收到消息后,进行身
份验证,验证成功则可接受并执行请求,否则将会返回错误信息并丢弃此请求。
腾讯云COS对象存储,基于密钥 HMAC (Hash Message Authentication Code) 的
自定义 HTTP 方案进行身份验证。
签名使用场景在
COS 对象存储服务使用的场景中,对于需要对外发布类的数据,通常可将对象设置为
公有读,私有写。即所有人可查看,通过 ACL 策略指定账号或
IP 可写入。此时,可将 ACL 策略与 API 请求签名相结合,对访问进行身份验证,
并对操作进行权限和有效期的控制。
注意:
本文所描述的 API 请求签名,如果您使用 SDK 进行开发,则已包含在内。仅在您希
望通过原始 API 进行二次开发时,需要根据本文所描述步骤进行操作。
在以上场景中,可对 API 请求进行多方面的安全防护:
请求者身份验证。通过访问者唯一 ID 和密钥确定请求者身份。防止传输数据篡改。
对数据加密并检验,保障传输内容完整性。防止签名被盗用。对签名设置时效,且进行数
据加密,避免签名盗用并重复使用。
签名流程客户通过对 HTTP 请求进行签名,并将签名后的请求发送至腾讯云进行签名
验证,具体流程如下图所示。
准备工作APPID、SecretId 和 SecretKey。
在控制台 云API密钥 页面可获取。确定开发语言:
支持但不限于 java、php 、c sharp、c++、 、python,根据不同的开发语
言,确定对应的 HMAC-SHA1、SHA1 函数。键值描述其中,组成签名内容的键值
(key=value)描述如下:键(key)
值(value)
描述q-sign-algorithm
sha1
必填。
签名算法,目前仅支持 sha1,即为 sha1 。
q-ak
参数[SecretID]
必填。
帐户 ID,即 SecretId,在控制台 云 API 密钥 页面可获取。如:
AKIDQjz3ltompVjBni5LitkWHFlFpwkn9U5q 。
q-sign-time
参数[SignTime]
必填。
本签名的有效起止时间,通过 Unix 时间戳注1描述起始和结束时间,以秒为单位,
格式为 [start-seconds];[end-seconds]。如: 1480932292;1481012298 。
q-key-time
参数[KeyTime]
必填。
与 q-sign-time 值相同。
q-header-list
参数[SignedHeaderList]
必填。
HTTP 请求头部。需从 key:value 中提取部分或全部 key,且 key 需转化为小写,
并将多个 key 之间以字典顺序排序,如有多组 key,可用“;”连接。如:
HTTP 请求 “ Host:
Content-Type: image/jpeg ”,其 SignedHeaderList 为 content-type;host 。
q-url-param-list
参数[SignedParameterList]
必填。
HTTP 请求参数。需从 key=value 中提取部分或全部 key,且 key 需转化为小写,
并将多个 key 之间以字典顺序排序,如有多组 key,可用“;”连接。如: HTTP 请求
“ GET /?prefix=abc&max-keys=20 ” ,其则 SignedParameterList 为
max-keys;prefix 或者 prefix 。
q-signature
参数[Signature]
必填。
HTTP内容签名,请查看 Signature 计算 。
版权声明:本文标题:腾讯云对象存储(COS)服务的 API 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1713365283a631024.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论