mirror of
https://github.com/deepmodeling/Uni-Lab-OS
synced 2026-03-24 04:10:33 +00:00
fast registry load minor fix on skill & registry stripe ros2 schema desc add create-device-skill new registry system backwards to yaml remove not exist resource new registry sys exp. support with add device add ai conventions correct raise create resource error ret info fix revert ret info fix fix prcxi check add create_resource schema re signal host ready event add websocket connection timeout and improve reconnection logic add open_timeout parameter to websocket connection add TimeoutError and InvalidStatus exception handling implement exponential backoff for reconnection attempts simplify reconnection logic flow add gzip change pose extra to any add isFlapY
70 lines
1.8 KiB
Python
70 lines
1.8 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
从 ak/sk 生成 UniLab API Authorization header。
|
|
|
|
算法: base64(ak:sk) → "Authorization: Lab <token>"
|
|
|
|
用法:
|
|
python gen_auth.py <ak> <sk>
|
|
python gen_auth.py --config <config.py>
|
|
|
|
示例:
|
|
python gen_auth.py myak mysk
|
|
python gen_auth.py --config experiments/config.py
|
|
"""
|
|
import base64
|
|
import re
|
|
import sys
|
|
|
|
|
|
def gen_auth(ak: str, sk: str) -> str:
|
|
token = base64.b64encode(f"{ak}:{sk}".encode("utf-8")).decode("utf-8")
|
|
return token
|
|
|
|
|
|
def extract_from_config(config_path: str) -> tuple:
|
|
"""从 config.py 中提取 ak 和 sk"""
|
|
with open(config_path, "r", encoding="utf-8") as f:
|
|
content = f.read()
|
|
ak_match = re.search(r'''ak\s*=\s*["']([^"']+)["']''', content)
|
|
sk_match = re.search(r'''sk\s*=\s*["']([^"']+)["']''', content)
|
|
if not ak_match or not sk_match:
|
|
return None, None
|
|
return ak_match.group(1), sk_match.group(1)
|
|
|
|
|
|
def main():
|
|
args = sys.argv[1:]
|
|
|
|
if len(args) == 2 and args[0] == "--config":
|
|
ak, sk = extract_from_config(args[1])
|
|
if not ak or not sk:
|
|
print(f"错误: 在 {args[1]} 中未找到 ak/sk 配置")
|
|
print("期望格式: ak = \"xxx\" sk = \"xxx\"")
|
|
sys.exit(1)
|
|
print(f"配置文件: {args[1]}")
|
|
elif len(args) == 2:
|
|
ak, sk = args
|
|
else:
|
|
print("用法:")
|
|
print(" python gen_auth.py <ak> <sk>")
|
|
print(" python gen_auth.py --config <config.py>")
|
|
sys.exit(1)
|
|
|
|
token = gen_auth(ak, sk)
|
|
print(f"ak: {ak}")
|
|
print(f"sk: {sk}")
|
|
print()
|
|
print(f"Authorization header:")
|
|
print(f" Authorization: Lab {token}")
|
|
print()
|
|
print(f"curl 用法:")
|
|
print(f' curl -H "Authorization: Lab {token}" ...')
|
|
print()
|
|
print(f"Shell 变量:")
|
|
print(f' AUTH="Authorization: Lab {token}"')
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|