Skip to content

获取上传 Token

获取资源上传所需的认证 Token。

基本信息

项目
方法GET
路径/v2/aholo/upload/token
认证签名认证(appkey + timestamp + sign)

Request

Query Param

参数必须类型说明
appkeystring商家 appkey
timestampstring时间戳(毫秒)
signstring签名值
appuidstring第三方用户 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&timestamp=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
  }
}

字段说明

字段类型说明
ousTokenstring上传认证 Token
globalDomainstring上传服务器域名
blockSizeint分片大小阈值(字节)

注意

ousToken 有效期有限,获取后应尽快使用。

下一步

获取 Token 后,根据文件大小选择上传方式:

单文件上传:

POST https://{globalDomain}/ous/api/v2/single/upload
Header: 'ous-token-v2: {ousToken}'