51 lines
1.4 KiB
Python
51 lines
1.4 KiB
Python
# uploader.py
|
|
|
|
from __future__ import annotations
|
|
|
|
import os
|
|
from typing import Optional
|
|
|
|
import requests
|
|
|
|
from config import SERVER_URL
|
|
|
|
|
|
def upload_session_zip(zip_path: str, session_id: str) -> bool:
|
|
"""
|
|
Envoie le zip de session au serveur.
|
|
|
|
Retourne True si HTTP 2xx, False sinon.
|
|
"""
|
|
# Si pas configuré sérieusement, on n'upload pas
|
|
if not SERVER_URL or "example.com" in SERVER_URL:
|
|
print("[agent_v0] SERVER_URL non configuré (ou placeholder), upload désactivé.")
|
|
return False
|
|
|
|
if not os.path.isfile(zip_path):
|
|
print(f"[agent_v0] ZIP introuvable pour upload : {zip_path}")
|
|
return False
|
|
|
|
print(f"[agent_v0] Upload du ZIP {zip_path} vers {SERVER_URL} ...")
|
|
|
|
try:
|
|
with open(zip_path, "rb") as f:
|
|
files = {
|
|
"file": (os.path.basename(zip_path), f, "application/zip"),
|
|
}
|
|
data = {
|
|
"session_id": session_id,
|
|
}
|
|
# Timeout plus agressif pour ne pas bloquer
|
|
resp = requests.post(SERVER_URL, files=files, data=data, timeout=5)
|
|
|
|
if 200 <= resp.status_code < 300:
|
|
print(f"[agent_v0] Upload réussi (HTTP {resp.status_code}).")
|
|
return True
|
|
|
|
print(f"[agent_v0] Upload échoué (HTTP {resp.status_code}). Réponse: {resp.text[:200]}")
|
|
return False
|
|
|
|
except Exception as e:
|
|
print(f"[agent_v0] Erreur lors de l'upload : {e}")
|
|
return False
|