簽名應用及示例(V2版本)
更新時間 2025-05-27 11:58:03
最近更新時間: 2025-05-27 11:58:03
分享文章
線上接入地址
接入Endpoint為//vod-api.xstore.daliqc.cn, 服務context-path為/xstore-vod 。
簽名生成規則
1、 signature形式:AWS {access-key}:{hash-of-secret-and-resource}
- 使用具體的access key代替{access-key} ,在其后緊跟一個冒號【:】。
- 用請求uri、method、簽名生成時間等和對應的secret key hash(SHA1)再base64 之后的結果替換{hash-of-secret-and-resource}。
2、簽名AWS {access-key}:{hash-of-secret-and-resource}生成步驟:
- 獲取請求方法httpMethod,如
POST。 - 獲得簽名生成時間GMT格式DateValue,如
Thu, 27 Jul 2023 09:04:58 GMT。 - 獲取請求完整uri,如
/xstore-vod/video/files。 - 將以上字符按指定格式拼接生成最終參與簽名的完整字符串,即
stringToSign="${httpMethod}\n\n\n${DateValue}\n${uri}"。 - 將sk作為秘鑰使用HmacSHA1對上述stringToSign進行hash。
- 對上述hash值進行base64編碼得到hash-of-secret-and-resource值,如
iGvpz3n7NjXclCnZDroeU/YUVQg=。 - 按AWS
{access-key}:{hash-of-secret-and-resource}進行拼接得到最終signature鑒權頭。
接口返回結果
所有接口都采用restful風格編寫,接口返回結果統一為json格式:
| 字段 | 說明 |
|---|---|
| code | 返回碼,0表示成功,非0表示失敗。 |
| message | 失敗時為具體失敗信息。 |
| data | 返回數據集。 |
| pageCount | 總頁數。 |
| total | 總記錄數。 |
查詢接口均支持分頁查詢
| 參數 | 說明 |
|---|---|
| pageIndex | 起始頁碼,從0開始。 |
| pageSize | 每頁數據條數,從1開始。 |
| 備注 | 不傳分頁按默認分頁進行查詢(每頁10條從第0頁開始查詢)。 |
SHELL實例
#!/bin/sh
ak="ak 請從云點播控制臺【密鑰管理】-【原生密鑰】獲取"
sk="sk 請從云點播控制臺【密鑰管理】-【原生密鑰】獲取"
endpoint="//vod-api.xstore.daliqc.cn"
uri="/xstore-vod/video/files"
httpMethod="POST"
DateValue="`TZ=GMT date +'%a, %d %b %Y %H:%M:%S GMT'`"
stringToSign="${httpMethod}\n\n\n${DateValue}\n${uri}"
signature=`echo -en ${stringToSign} | openssl sha1 -hmac ${sk} -binary | base64`
#body入參為json格式
apiParam='{"videoId":"請從云點播控制臺【點播模式】-【媒體庫】獲取"}'
echo "curl -H \"Content-Type: application/json\" -H \"Date: ${DateValue}\" -H \"signature: AWS ${ak}:${signature}\" -d '${apiParam}' -X POST \"${endpoint}${uri}\""
sh -c "curl -H 'Content-Type:application/json' -H 'Date: ${DateValue}' -H 'signature: AWS ${ak}:${signature}' -d '${apiParam}' -X POST '${endpoint}${uri}'"
如果調用腳本失效,可將shell從sh更換成bash再試一次。