KyrosDev commited on
Commit
529f79d
·
1 Parent(s): e08bec5

修復版本發布功能中遺漏的 version_db 引用

Browse files

修正 version_routes.py 中檔案上傳功能,
使用 supabase_clients 統一管理連接

app/api/version_routes.py CHANGED
@@ -216,7 +216,20 @@ async def release_version(
216
  }
217
  content_type = content_types.get(file_extension, 'application/octet-stream')
218
 
219
- final_download_url = await version_db.upload_file(file_path, file_content, content_type)
 
 
 
 
 
 
 
 
 
 
 
 
 
220
 
221
  elif not download_url:
222
  raise HTTPException(status_code=400, detail="Must provide either file or download URL")
 
216
  }
217
  content_type = content_types.get(file_extension, 'application/octet-stream')
218
 
219
+ # 使用 Supabase Storage 上傳檔案
220
+ try:
221
+ client = supabase_clients.get_version_client()
222
+ storage_result = client.storage.from_('plugin-releases').upload(file_path, file_content, {
223
+ 'content-type': content_type,
224
+ 'x-upsert': 'true'
225
+ })
226
+
227
+ # 產生公開下載連結
228
+ final_download_url = client.storage.from_('plugin-releases').get_public_url(file_path)
229
+
230
+ except Exception as e:
231
+ logger.error(f"Storage upload error: {e}")
232
+ raise HTTPException(status_code=500, detail=f"檔案上傳失敗: {str(e)}")
233
 
234
  elif not download_url:
235
  raise HTTPException(status_code=400, detail="Must provide either file or download URL")
app/models/supabase_clients.py CHANGED
@@ -67,22 +67,26 @@ class SupabaseClients:
67
 
68
  def get_license_client(self) -> Optional[Client]:
69
  """取得授權系統的 Supabase 客戶端"""
70
- self._initialize_license_client()
 
71
  return self.license_client
72
 
73
  def get_version_client(self) -> Optional[Client]:
74
  """取得版本系統的 Supabase 客戶端"""
75
- self._initialize_version_client()
 
76
  return self.version_client
77
 
78
  def is_license_connected(self) -> bool:
79
  """檢查授權系統是否連接成功"""
80
- self._initialize_license_client()
 
81
  return self.license_client is not None
82
 
83
  def is_version_connected(self) -> bool:
84
  """檢查版本系統是否連接成功"""
85
- self._initialize_version_client()
 
86
  return self.version_client is not None
87
 
88
  def verify_connections(self) -> dict:
 
67
 
68
  def get_license_client(self) -> Optional[Client]:
69
  """取得授權系統的 Supabase 客戶端"""
70
+ if not self._license_initialized:
71
+ self._initialize_license_client()
72
  return self.license_client
73
 
74
  def get_version_client(self) -> Optional[Client]:
75
  """取得版本系統的 Supabase 客戶端"""
76
+ if not self._version_initialized:
77
+ self._initialize_version_client()
78
  return self.version_client
79
 
80
  def is_license_connected(self) -> bool:
81
  """檢查授權系統是否連接成功"""
82
+ if not self._license_initialized:
83
+ self._initialize_license_client()
84
  return self.license_client is not None
85
 
86
  def is_version_connected(self) -> bool:
87
  """檢查版本系統是否連接成功"""
88
+ if not self._version_initialized:
89
+ self._initialize_version_client()
90
  return self.version_client is not None
91
 
92
  def verify_connections(self) -> dict: