更新时间:2020-10-09 13:48:58
< path>
管理凭证accessToken是网宿云存储用于验证资源管理接口请求的合法性。建议仅在业务服务器端使用这一类凭证,避免意外授权导致滥用。
抽取请求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>"
使用SecretKey对signingStr进行HMAC-SHA1签名,得到Sign。
Sign = hmac_sha1(signingStr,"<SecretKey>")
注:不同语言的HMAC-SHA1方法有差异,可参考各语言SDK中的实现
外部资源:HMAC-SHA1签名
示例代码:HMAC-SHA1签名
对签名数据Sign进行URL安全的Base64编码,得到encodeSign。
encodeSign = urlsafe_base64_encode(Sign)
将AccessKey与encodeSign用:连接,得到管理凭证accessToken。
accessToken = <AccessKey>:<encodeSign>