'commit'
This commit is contained in:
45
dsLightRag/Liblib/T1_Test.py
Normal file
45
dsLightRag/Liblib/T1_Test.py
Normal file
@@ -0,0 +1,45 @@
|
||||
import hashlib
|
||||
|
||||
import requests
|
||||
import json
|
||||
import hmac
|
||||
from hashlib import sha1
|
||||
import base64
|
||||
import time
|
||||
import string
|
||||
import secrets
|
||||
|
||||
from Config.Config import LIBLIB_SECRETKEY, LIBLIB_URL, LIBLIB_ACCESSKEY
|
||||
|
||||
|
||||
class SignatureInfo:
|
||||
"""签名信息封装类,对应Java的SignatureInfo类"""
|
||||
|
||||
def __init__(self, signature: str, timestamp: int, signature_nonce: str):
|
||||
self.signature = signature
|
||||
self.timestamp = timestamp
|
||||
self.signature_nonce = signature_nonce
|
||||
|
||||
def __repr__(self) -> str:
|
||||
return f"SignatureInfo(signature='{self.signature}', timestamp={self.timestamp}, signature_nonce='{self.signature_nonce}')"
|
||||
|
||||
|
||||
def make_sign(uri, timestamp, signatureNonce):
|
||||
# 当前毫秒时间戳(修正:使用整数类型)
|
||||
if timestamp == 0:
|
||||
timestamp = int(time.time() * 1000)
|
||||
if signatureNonce is None:
|
||||
signatureNonce = ''.join(secrets.choice(string.ascii_letters + string.digits) for _ in range(10))
|
||||
content = f"{uri}&{timestamp}&{signatureNonce}"
|
||||
print(content)
|
||||
signature = hmac.new(LIBLIB_SECRETKEY.encode('utf-8'), content.encode('utf-8'), digestmod=hashlib.sha1).digest()
|
||||
signature = base64.urlsafe_b64encode(signature).decode('utf-8').strip()
|
||||
return SignatureInfo(signature, timestamp, signatureNonce)
|
||||
|
||||
|
||||
# 请求API接口的uri地址(修正:使用相对路径,不包含域名)
|
||||
uri = f"/api/model/version/get"
|
||||
# 生成签名信息(确保在URL构建前调用)
|
||||
signature_info = make_sign(LIBLIB_URL+uri,1756799766502,'K91nkXyrCH') # 使用API_PATH而非完整URL
|
||||
|
||||
print(signature_info)
|
Reference in New Issue
Block a user