import hmac from hashlib import sha1 import base64 import time import uuid import requests 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" # 获取签名 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}' # 封装调用参数 versionUuid="21df5d84cca74f7a885ba672b5a80d19" response = requests.post(url, json={"versionUuid":versionUuid}) response_data = response.json() if response_data.get('code') == 0: model_info = response_data.get('data') modelName= model_info.get('modelName') versionNam= model_info.get('versionName') commercialUse=model_info.get('commercialUse') modelUrl= model_info.get('modelUrl') print(f"模型名称:{modelName}") print(f"版本名称:{versionNam}") print(f"是否允许商业用途:{commercialUse}") print(f"模型下载地址:{modelUrl}") else: print(f"错误信息:{response_data.get('message')}")