44 lines
1.3 KiB
Python
44 lines
1.3 KiB
Python
import hmac
|
||
from hashlib import sha1
|
||
import base64
|
||
import time
|
||
import uuid
|
||
|
||
import Config.Config
|
||
|
||
|
||
def make_sign(uri):
|
||
"""
|
||
生成签名
|
||
"""
|
||
|
||
# API访问密钥
|
||
secret_key = Config.Config.LIBLIB_SECRETKEY
|
||
|
||
# 当前毫秒时间戳
|
||
timestamp = str(int(time.time() * 1000))
|
||
# 随机字符串
|
||
signature_nonce = str(uuid.uuid4())
|
||
# 拼接请求数据
|
||
content = '&'.join((uri, timestamp, signature_nonce))
|
||
|
||
# 生成签名
|
||
digest = hmac.new(secret_key.encode(), content.encode(), sha1).digest()
|
||
# 移除为了补全base64位数而填充的尾部等号
|
||
sign = base64.urlsafe_b64encode(digest).rstrip(b'=').decode()
|
||
return sign, timestamp, signature_nonce
|
||
|
||
|
||
if __name__ == '__main__':
|
||
uri = "/api/model/version/get"
|
||
print(make_sign(uri))
|
||
sign, timestamp, signature_nonce = make_sign(uri)
|
||
url = f'{Config.Config.LIBLIB_URL}{uri}?AccessKey={Config.Config.LIBLIB_ACCESSKEY}&Signature={sign}&Timestamp={timestamp}&SignatureNonce={signature_nonce}'
|
||
print(url)
|
||
# Content-Type application/json
|
||
# - 请求body:
|
||
versionUuid="21df5d84cca74f7a885ba672b5a80d19"
|
||
# 编写POST提交并接收返回值
|
||
import requests
|
||
response = requests.post(url, json={"versionUuid":versionUuid})
|
||
print(response.json()) |