管理凭证

描述

管理凭证accessToken是网宿云存储用于验证资源管理接口请求的合法性。建议仅在业务服务器端使用这一类凭证,避免意外授权导致滥用。

  • 安全密钥SecretKey
    请从云存储平台密钥管理处获取SK。
  • 访问密钥AccessKey
    请从云存储平台密钥管理处获取AK。

管理凭证算法

待签名数据

抽取请求URL中的<path><path>?<query>部分,与<body>(即HTTP Body),用\n连接,得到signingStr

有以下4种情况:

    signingStr = "<path>?<query>\n" 
或  signingStr = "<path>?<query>\n<body>"
或  signingStr = "<path>\n"
或  signingStr = "<path>\n<body>"

例如:

列举资源(list)接口
<path>:/list
<query>:bucket=<Bucket>&marker=<Marker>&limit=<Limit>&prefix=<Urlsafe_Base64_Encoded_Prefix>&mode=<Mode>
<body>:无
则signingStr = "/list?bucket=<Bucket>&marker=<Marker>&limit=<Limit>&prefix=<Urlsafe_Base64_Encoded_Prefix>&mode=<Mode>\n"

音视频处理(avthumb/vframe)接口
<path>:/fops
<body>:<RequestParams>,即相应的请求内容
则signingStr ="/fops\n<RequestParams>"

HMAC-SHA1签名数据

使用SecretKeysigningStr进行HMAC-SHA1签名,得到Sign

Sign = hmac_sha1(signingStr,"<SecretKey>")
            注:不同语言的HMAC-SHA1方法有差异,可参考各语言SDK中的实现

外部资源:HMAC-SHA1签名
示例代码: HMAC-SHA1签名

URL安全的Base64编码签名数据

对签名数据Sign进行URL安全的Base64编码,得到encodeSign

encodeSign = urlsafe_base64_encode(Sign)

生成管理凭证

AccessKeyencodeSign:连接,得到管理凭证accessToken

accessToken = <AccessKey>:<encodeSign>