3.1.0 • Published 2 years ago

qcloud-cos-sts v3.1.0

Weekly downloads
87
License
MIT
Repository
github
Last release
2 years ago

qcloud-cos-sts

安装方法

npm i qcloud-cos-sts --save

调用示例

请查看 demo 里的示例。

接口说明

getCredential

获取临时密钥接口(获取联合身份临时访问凭证)。

参数说明

字段类型描述必选
optionsObject表示当客户端的请求,最少需要什么样的权限,是一个键值对象的数组
- secretIdString云 API 密钥 Id
- secretKeyString云 API 密钥 Key
- policyObject要申请的临时密钥,限定的权限范围
- durationSecondsNumber要申请的临时密钥最长有效时间,单位秒,默认 1800,最大可设置 7200
- proxyString代理地址,如:"http://proxy.example.com:8080"
- hostString可以通过改参数指定请求的域名
- endpointString作用与host参数相同,二者选一即可
callbackFunction临时密钥获取完成后的回调方法

返回值说明

字段类型描述
errObject错误信息
dataObject返回的临时密钥内容
- startTimeNumber密钥的起始时间,是 UNIX 时间戳
- expiredTimeNumber密钥的失效时间,是 UNIX 时间戳
- credentialsString云API
- - tmpSecretIdString临时密钥 Id,可用于计算签名
- - tmpSecretKeyString临时密钥 Key,可用于计算签名
- - sessionTokenString请求时需要用的 token 字符串,最终请求 COS API 时,需要放在 Header 的 x-cos-security-token 字段

返回示例

{
    "credentials": {
        "tmpSecretId": "AKIDEPMQB_Q9Jt2fJxXyIekOzKZzx-sdGQgBga4TzsUdTWL9xlvsjInOHhCYFqfoKOY4",
        "tmpSecretKey": "W/3Lbl1YEW02mCoawIesl5kNehSskrSbp1cT1tgW70g=",
        "sessionToken": "c6xnSYAxyFbX8Y50627y9AA79u6Qfucw6924760b61588b79fea4c277b01ba157UVdr_10Y30bdpYtO8CXedYZe3KKZ_DyzaPiSFfNAcbr2MTfAgwJe-dhYhfyLMkeCqWyTNF-rOdOb0rp4Gto7p4yQAKuIPhQhuDd77gcAyGakC2WXHVd6ZuVaYIXBizZxqIHAf4lPiLHa6SZejSQfa_p5Ip2U1cAdkEionKbrX97xTKTcA_5Pu525CFSzHZIQibc2uNMZ-IRdQp12MaXZB6bxM6nB4xXH45mDIlbIGjaAsrtRJJ3csmf82uBKaJrYQoguAjBepMH91WcH87LlW9Ya3emNfVX7NMRRf64riYd_vomGF0TLgan9smEKAOdtaL94IkLvVJdhLqpvjBjp_4JCdqwlFAixaTzGJHdJzpGWOh0mQ6jDegAWgRYTrJvc5caYTz7Vphl8XoX5wHKKESUn_vqyTAid32t0vNYE034FIelxYT6VXuetYD_mvPfbHVDIXaFt7e_O8hRLkFwrdAIVaUml1mRPvccv2qOWSXs"
    },
    "expiration": "2019-08-07T08:54:35Z",
    "startTime": 1565166275,
    "expiredTime": 1565168075,
    "requestId":"3f8f5f69-1929-4f8f-9e47-ee0426a880ae"
}

getRoleCredential

获取临时密钥接口(申请扮演角色)。

参数说明

字段类型描述必选
optionsObject表示当客户端的请求,最少需要什么样的权限,是一个键值对象的数组
- secretIdString云 API 密钥 Id
- secretKeyString云 API 密钥 Key
- policyObject要申请的临时密钥,限定的权限范围
- roleArnString角色的资源描述,参考文档
- durationSecondsNumber要申请的临时密钥最长有效时间,单位秒,默认 1800,最大可设置 7200
- proxyString代理地址,如:"http://proxy.example.com:8080"
- hostString可以通过改参数指定请求的域名
- endpointString作用与host参数相同,二者选一即可
callbackFunction临时密钥获取完成后的回调方法

返回值说明

字段类型描述
errObject错误信息
dataObject返回的临时密钥内容
- startTimeNumber密钥的起始时间,是 UNIX 时间戳
- expiredTimeNumber密钥的失效时间,是 UNIX 时间戳
- credentialsString云API
- - tmpSecretIdString临时密钥 Id,可用于计算签名
- - tmpSecretKeyString临时密钥 Key,可用于计算签名
- - sessionTokenString请求时需要用的 token 字符串,最终请求 COS API 时,需要放在 Header 的 x-cos-security-token 字段

返回示例

{
    "credentials": {
        "tmpSecretId": "AKIDEPMQB_Q9Jt2fJxXyIekOzKZzx-sdGQgBga4TzsUdTWL9xlvsjInOHhCYFqfoKOY4",
        "tmpSecretKey": "W/3Lbl1YEW02mCoawIesl5kNehSskrSbp1cT1tgW70g=",
        "sessionToken": "c6xnSYAxyFbX8Y50627y9AA79u6Qfucw6924760b61588b79fea4c277b01ba157UVdr_10Y30bdpYtO8CXedYZe3KKZ_DyzaPiSFfNAcbr2MTfAgwJe-dhYhfyLMkeCqWyTNF-rOdOb0rp4Gto7p4yQAKuIPhQhuDd77gcAyGakC2WXHVd6ZuVaYIXBizZxqIHAf4lPiLHa6SZejSQfa_p5Ip2U1cAdkEionKbrX97xTKTcA_5Pu525CFSzHZIQibc2uNMZ-IRdQp12MaXZB6bxM6nB4xXH45mDIlbIGjaAsrtRJJ3csmf82uBKaJrYQoguAjBepMH91WcH87LlW9Ya3emNfVX7NMRRf64riYd_vomGF0TLgan9smEKAOdtaL94IkLvVJdhLqpvjBjp_4JCdqwlFAixaTzGJHdJzpGWOh0mQ6jDegAWgRYTrJvc5caYTz7Vphl8XoX5wHKKESUn_vqyTAid32t0vNYE034FIelxYT6VXuetYD_mvPfbHVDIXaFt7e_O8hRLkFwrdAIVaUml1mRPvccv2qOWSXs"
    },
    "expiration": "2019-08-07T08:54:35Z",
    "startTime": 1565166275,
    "expiredTime": 1565168075,
    "requestId":"3f8f5f69-1929-4f8f-9e47-ee0426a880ae"
}

getPolicy

获取 policy 接口。本接口适用于接收 Web、iOS、Android 客户端 SDK 提供的 Scope 参数。推荐您把 Scope 参数放在请求的 Body 里面,通过 POST 方式传到后台。

参数说明

字段类型描述必选
scopeObjectArray表示当客户端的请求,最少需要什么样的权限,是一个键值对象的数组
- actionString操作名称,如 "name/cos:PutObject"
- bucketString存储桶名称,格式:test-1250000000
- regionString园区名称,如 ap-guangzhou
- prefixString拼接 resource 字段所需的 key 前缀,客户端 SDK 默认传固定文件名如 "dir/1.txt",支持 结尾如 "dir/"

返回值说明

字段类型描述
policyObject申请临时密钥所需的权限策略

policy 具体格式请看 文档

返回示例

{
    "version": "2.0",
    "statement": [{
        "action": [
            "name/cos:PutObject",
        ],
        "effect": "allow",
        "principal": {"qcs": ["*"]},
        "resource": [
            "qcs::cos:ap-guangzhou:uid/1250000000:prefix//1250000000/test/exampleobject"
        ]
    }]
}

更多示例

  • demo/demo.js 是调用例子
  • demo/sts-server.js 是临时密钥服务的例子
  • demo/sts-server-scope.js 是临时密钥服务的例子,可以细粒度控制权限

您可以直接使用 demo/sts-server.js 或者 demo/sts-server-scope.js,修改配置参数,来搭建本地密钥服务器。

相关 SDK