获取上传 Token
获取资源上传所需的认证 Token。
基本信息
| 项目 | 值 |
|---|---|
| 方法 | GET |
| 路径 | /v2/aholo/upload/token |
| 认证 | 签名认证(appkey + timestamp + sign) |
Request
Query Param
| 参数 | 必须 | 类型 | 说明 |
|---|---|---|---|
appkey | ✅ | string | 商家 appkey |
timestamp | ✅ | string | 时间戳(毫秒) |
sign | ✅ | string | 签名值 |
appuid | ❌ | string | 第三方用户 ID |
签名计算
sign = md5(appsecret + appkey + appuid + timestamp)如果不需要 appuid:
sign = md5(appsecret + appkey + timestamp)Example
bash
curl -X GET 'https://openapi.kujiale.com/v2/aholo/upload/token?appkey=YOUR_APPKEY×tamp=1485878400000&sign=YOUR_SIGN&appuid=user123'python
import hashlib
import time
import requests
appkey = "YOUR_APPKEY"
appsecret = "YOUR_APPSECRET"
appuid = "user123"
timestamp = str(int(time.time() * 1000))
sign_str = appsecret + appkey + appuid + timestamp
sign = hashlib.md5(sign_str.encode()).hexdigest()
url = "https://openapi.kujiale.com/v2/aholo/upload/token"
params = {
"appkey": appkey,
"timestamp": timestamp,
"sign": sign,
"appuid": appuid
}
response = requests.get(url, params=params)
print(response.json())javascript
const appkey = "YOUR_APPKEY";
const appsecret = "YOUR_APPSECRET";
const appuid = "user123";
const timestamp = Date.now().toString();
const signStr = appsecret + appkey + appuid + timestamp;
const sign = await crypto.subtle.digest('MD5', new TextEncoder().encode(signStr))
.then(buf => Array.from(new Uint8Array(buf)).map(b => b.toString(16).padStart(2, '0')).join(''));
const url = new URL('https://openapi.kujiale.com/v2/aholo/upload/token');
url.searchParams.set('appkey', appkey);
url.searchParams.set('timestamp', timestamp);
url.searchParams.set('sign', sign);
url.searchParams.set('appuid', appuid);
const response = await fetch(url.toString(), { method: 'GET' });
const data = await response.json();Response
数据结构
json
{
"c": "0",
"d": {
"ousToken": "encrypted_token_string",
"globalDomain": "https://ous-cos.kujiale.com",
"blockSize": 1048576
}
}字段说明
| 字段 | 类型 | 说明 |
|---|---|---|
ousToken | string | 上传认证 Token |
globalDomain | string | 上传服务器域名 |
blockSize | int | 分片大小阈值(字节) |
注意
ousToken 有效期有限,获取后应尽快使用。
下一步
获取 Token 后,根据文件大小选择上传方式:
单文件上传:
POST https://{globalDomain}/ous/api/v2/single/upload
Header: 'ous-token-v2: {ousToken}'