获取访问BOS临时STS凭证
更新时间:2022-08-12
获取访问BOS临时STS凭证
接口描述
- 本接口用于创建资产时临时获取百度云bos的STS凭证
- 获取的sts临时凭证,有效期为30min,过期需要重新获取
- 目前sts上传暂不支持php8,建议使用php7.4 以下的版本,使用php sdk的用户注意php版本
- 创建资产时,资产原文件、缩略图和介绍图等原文件需要存储到BOS上,需要创建资产账户私钥对 nonce 做签名
- 百度云Bos访问控制需要,调用该接口获取临时访问凭证。参考:https://cloud.baidu.com/doc/BOS/s/Tjwvysda9
- 百度云BoS sdk: https://github.com/baidubce/bce-sdk-go https://github.com/baidubce/bce-sdk-java https://github.com/baidubce/bce-sdk-php
- 注意object key需要拼接上该api下发的object_path,并且注意文件名不要冲突(建议使用文件hash值做文件名)。比如:100100/dd32b81c3a8bf5505cdf80506cde8801.jpg
- 注意不需要自己购买bos,使用该API下发的临时token上传即可。先把文件数据上传到bos,再铸造资产。
- 建议直接使用xasset-sdk的上传文件方法上传,不需要自行对接,使用SDK不需要过多关注该API。
请求结构
Plain Text
1POST /xasset/file/v1/getstoken HTTP/1.1
2Host: xuper.baidu.com
3Authorization: Authorization string
4Content-Type: application/x-www-form-urlencoded;charset=utf-8
5
6addr={address}
7&sign={sign}
8&pkey={pkey}
9&nonce={nonce}
请求头域
- 除公共头域外,无其它特殊头域。
请求参数
参数名称 | 类型 | 是否必选 | 描述 |
---|---|---|---|
addr | string | 必选 | 创建资产账户地址 |
sign | string | 必选 | 创建资产账户私钥签名,内容为:msg = Sprintf(“%d”, nonce),sign = XassetSignECDSA(account, msg) |
pkey | string | 必选 | 创建资产账户公钥 |
nonce | int64 | 必选 | 随机数,可用sdk内置算法gen_nonce()生成 |
响应头域
- 除公共头域外,无其它特殊头域。
响应参数
参数名称 | 类型 | 描述 |
---|---|---|
errno | int | 错误码 0为成功,其他可参考常用错误码 |
request_id | int | 后端生成,用于问题反馈,建议业务日志纪录 |
accessInfo | Array | 获取的临时授权的bos信息 |
+ bucket | string | 存储空间 |
+ endpoint | string | 访问域名 |
+ object_path | string | 文件路径 |
+ access_key_id | string | 访问密钥公钥 |
+ secret_access_key | string | 访问密钥私钥 |
+ session_token | string | 临时有权的token,有效期为30min |
+ createTime | datatime | 鉴权生效开始时间 |
+ expiration | datatime | 鉴权失效时间 |
请求示例
JSON
1Post xasset/file/v1/getstoken
2Host: xuper.baidu.com
3Authorization: bce-auth-v1/f81d3b34e48048fbb2634dc7882d7e21/2022-04-18T04:17:29Z/3600/host/74c506f68c65e26c633bfa104c863fffac5190fdec1ec24b7c03eb5d67d2e1de
4
5addr=bFKZMPVBtUPb1bdoXzWwKX1jaSy9omMjR
6&pubKey={"Curvname":"P-256","X":99992390283545488142355111780630053962942114118238766864067722901319912547387,"Y":62636249704255210574823120529280656364753347818712821209439354501575504249596}
7&sign=B014EDF86B6DEE29E167E9D9ED9C5832
8&nonce=8856422235281354998
响应示例
JSON
1HTTP/1.1 200 OK
2Content-Type: application/json;charset=UTF-8
3Date: Wed, 18 Apr 2022 03:28:11 GMT
4X-Trace-Id: "1182282645"
5 {
6 "errno": 0,
7 "request_id": "1182282645",
8 "accessInfo": {
9 "bucket":"bj",
10 "endpoint":"https://bj.bcebos.com",
11 "object_path":"100100/", // object必须拼接上改前缀
12 "access_key_id": "3bdecf4afebd41849628389a20629ecc",
13 "secret_access_key": "3f901ef12d454b9c92ba2dde7c029140",
14 "session_token": "ZGZiM2M3MmU4Mjk4NGQ2M",
15 "createTime": "2015-11-18T11:48:17Z",
16 "expiration": "2015-11-18T23:48:17Z",
17 }
18}