支持的音乐格式

[toc]

Cloud接口规范

环境

生产环境

api.ugnas.com

测试环境

api-test.ugnas.com

接口响应

响应数据

参数名 参数类型 必传 描述
code int 接口响应状态码(200: 成功, 其他为失败)
msg string 接口响应描述(接口异常时会响应)
data object 接口响应数据

响应示例

{"code": 200, "msg": "", "data": {}}

接口鉴权

设备端鉴权

请求头参数

参数名 参数类型 必传 描述
ak string 接入标识 (对应nas设备序列号sn)
mac string 设备mac地址
ts string 时间戳(单位秒)

用于控制请求时效
目前默认半小时
(客户端请求时间不能大于或者小于服务端半小时) |
| sign | string | 是 | 计算出的签名字符串 |

签名算法

  • 参数值为object或者list类型的不参与签名

  • 按照请求参数名的字母升序排列非空请求参数

  • 移除内容为空的 参数

  • 使用 key1=value1&key2=value2方式拼接

  • 在字符串最后加上 &SecretKey=${通讯秘钥}

签名示例

通用参数:

{
    "ak":"DH00002006000029",
    "mac":"98:6E:E8:20:25:03",
    "ts":"1640835564",
    "sign":"0e2b218b27af8ce4742b85459419da90"
}

接口参数:

{
    "name":"fff",
    "count":10,
    "err":true,
    "sn":"devicesn",
    "searchKey":"绿联",
	"obj": {"name": "test"},
	"list": ["1", "2"]
    "empty":"",
    "company":"ugreen"
}

拼接字符串:

##签名字符串sign_str
ak=DH00002006000029&company=ugreen&count=10&err=true&mac=98:6E:E8:20:25:03&name=fff&searchKey=%E7%BB%BF%E8%81%94&sn=devicesn&ts=1640835564&SecretKey=secret_key_112233ffgghh

md5签名

对拼接字符串md5得到 签名结果.

注意事项

  • 签名校验时 需要提前取出 调用方请求参数 sign
  • 当前签名计算方式, 不支持参数值 为 object, list的类型 目前处理方式为 该种类型参数 不做签名处理.

AES加解密约定

AES算法

##算法
AES/ECB/PKCS5Padding
##秘钥长度
128位  (字符串16位, 示例: ugreen@nasdamai#) 
##测试明文
听说nas卖了100万台
##加密文本(Base64)
O2buoIySMAgH/2DvQKDJqTJ6hXDWi8CAAlM5hcwE9zM=
##在线校验网址
https://aks.jd.com/tools/sec/

AES秘钥长度

  1. 由于目前约定算法 AES秘钥 限定128位, (长度为16的字符串).
  2. 目前方案 AES加解密 与 签名 秘钥 共用秘钥 有可能长度不一致.
  3. 假如 签名秘钥长度大于16, 那么只取前16位字符, 如果小于16位那么后面补”0”.

客户端鉴权

基于access_token鉴权

数据加解密

基于云端 & 客户端约定的固定秘钥 AES加解密