更新时间:2025-08-18 15:33:44
管理凭证accessToken是对象存储服务用于验证资源管理接口请求合法性的安全令牌。推荐仅在业务服务器端使用此类凭证,以避免因意外授权造成的滥用。
构建管理凭证需要获得以下两个数据:
(SecretKey) 请从对象存储平台的密钥管理员获取SK。(AccessKey) 请从对象存储平台的密钥管理员获取AK。1. 构造待签名字符串(signingStr)
从HTTP请求中提取以下元素:
<path>:API路径(如 /list)<query>:URL查询参数(如 bucket=test&limit=100)<body>:请求体原始数据组合规则(按场景选择):
| 场景类型 | 公式 | 应用案例 |
|---|---|---|
| 含查询参数 + 无请求体 | signingStr =<path>?<query>\n |
列举存储桶资源 |
| 含查询参数 + 有请求体 | signingStr =<path>?<query>\n<body> |
复杂条件查询 |
| 无查询参数 + 无请求体 | signingStr =<path>\n |
删除文件 |
| 无查询参数 + 有请求体 | signingStr =<path>\n<body> |
音视频处理指令 |
实际使用案例:
# 案例1:列举资源接口
path = "/list"
query = "bucket=user-data&limit=50"
signingStr = f"{path}?{query}\n" # 结尾必须有换行符
# 案例2:音视频处理接口
path = "/fops"
body = '{"operation":"transcode","format":"mp4"}'
signingStr = f"{path}\n{body}" # 路径与请求体用换行符分隔
2. 生成HMAC-SHA1签名
使用 SecretKey 对 signingStr 进行 HMAC-SHA1 签名以获得 Sign
Sign = hmac_sha1(signingStr, "<SecretKey>")
3. URL安全的Base64编码签名数据
对签名数据 Sign 执行 URL安全的Base64编码以获得 encodeSign
encodeSign = urlsafe_base64_encode(Sign)
4. 组合管理凭证
按照以下规则连接 AccessKey 和 encodeSign 以获得管理凭证 accessToken
accessToken = <AccessKey>:<encodeSign>