upload_client.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. """
  2. 上传小龙虾客户端到 OSS,输出公开下载链接
  3. """
  4. import os
  5. import sys
  6. from dotenv import load_dotenv
  7. load_dotenv("backend/.env")
  8. import oss2
  9. ACCESS_KEY_ID = os.getenv("OSS_ACCESS_KEY_ID")
  10. ACCESS_KEY_SECRET = os.getenv("OSS_ACCESS_KEY_SECRET")
  11. ENDPOINT = os.getenv("OSS_ENDPOINT", "oss-cn-beijing.aliyuncs.com")
  12. BUCKET_NAME = os.getenv("OSS_BUCKET_NAME")
  13. BUCKET_DOMAIN = os.getenv("OSS_BUCKET_DOMAIN")
  14. FILES = [
  15. ("小龙虾客户端 Setup 1.2.0(1).exe", "releases/openclaw-setup-1.2.0.exe"),
  16. ("小龙虾客户端 Setup 1.2.0-wangxunai.exe", "releases/openclaw-setup-1.2.0-wangxunai.exe"),
  17. ]
  18. if not all([ACCESS_KEY_ID, ACCESS_KEY_SECRET, BUCKET_NAME]):
  19. print("OSS 配置缺失,请检查 backend/.env")
  20. sys.exit(1)
  21. auth = oss2.Auth(ACCESS_KEY_ID, ACCESS_KEY_SECRET)
  22. bucket = oss2.Bucket(auth, ENDPOINT, BUCKET_NAME)
  23. for local_file, oss_key in FILES:
  24. if not os.path.exists(local_file):
  25. print(f"文件不存在,跳过:{local_file}")
  26. continue
  27. print(f"正在上传 {local_file}(约 {os.path.getsize(local_file) // 1024 // 1024} MB)...")
  28. oss2.resumable_upload(
  29. bucket, oss_key, local_file,
  30. multipart_threshold=10 * 1024 * 1024,
  31. part_size=10 * 1024 * 1024,
  32. num_threads=4,
  33. )
  34. url = f"https://{BUCKET_DOMAIN}/{oss_key}"
  35. print(f"上传成功:{url}\n")