Spaces:
Build error
Build error
Update huggingface_storage.py
Browse files- huggingface_storage.py +25 -22
huggingface_storage.py
CHANGED
|
@@ -24,44 +24,47 @@ def upload_project_folder_to_hf(
|
|
| 24 |
"""
|
| 25 |
Téléverse un dossier local (le projet utilisateur) vers un dossier spécifique
|
| 26 |
dans le Dataset Hugging Face, en une seule commit, en utilisant deploy_id comme path_in_repo.
|
| 27 |
-
|
| 28 |
:param local_folder_path: Chemin absolu du dossier local à téléverser (ex: temp_uploads/abc-123).
|
| 29 |
:param deploy_id: L'ID unique du projet (utilisé comme nom de dossier dans le repo HF).
|
| 30 |
:param repo_id: L'ID complet du repo HF (si non fourni, utilise HF_DATASET_REPO_ID).
|
| 31 |
-
:return:
|
| 32 |
"""
|
| 33 |
repo_id = repo_id if repo_id else HF_DATASET_REPO_ID
|
| 34 |
|
| 35 |
if not repo_id:
|
| 36 |
-
|
| 37 |
-
return False, "Erreur de configuration: Repository Hugging Face non défini.", None
|
| 38 |
|
| 39 |
-
if not os.path.isdir(local_folder_path):
|
| 40 |
-
return False, f"Erreur: Le dossier local à téléverser n'existe pas: {local_folder_path}", None
|
| 41 |
-
|
| 42 |
-
# Le chemin dans le repo est l'ID du projet (le dossier racine)
|
| 43 |
-
path_in_repo = deploy_id
|
| 44 |
-
|
| 45 |
try:
|
| 46 |
-
|
| 47 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 48 |
folder_path=local_folder_path,
|
| 49 |
repo_id=repo_id,
|
| 50 |
-
path_in_repo=
|
| 51 |
-
repo_type="dataset",
|
| 52 |
-
commit_message=f"Ajout du
|
|
|
|
| 53 |
)
|
| 54 |
|
| 55 |
-
full_repo_path = f"{repo_id}
|
| 56 |
-
logger.info(f"Téléversement réussi
|
| 57 |
-
|
|
|
|
| 58 |
|
| 59 |
except HfHubHTTPError as e:
|
| 60 |
-
|
| 61 |
-
|
|
|
|
| 62 |
except Exception as e:
|
| 63 |
-
logger.error(f"Erreur
|
| 64 |
-
return False, f"Échec du
|
| 65 |
|
| 66 |
|
| 67 |
def get_project_files_from_hf(
|
|
|
|
| 24 |
"""
|
| 25 |
Téléverse un dossier local (le projet utilisateur) vers un dossier spécifique
|
| 26 |
dans le Dataset Hugging Face, en une seule commit, en utilisant deploy_id comme path_in_repo.
|
| 27 |
+
|
| 28 |
:param local_folder_path: Chemin absolu du dossier local à téléverser (ex: temp_uploads/abc-123).
|
| 29 |
:param deploy_id: L'ID unique du projet (utilisé comme nom de dossier dans le repo HF).
|
| 30 |
:param repo_id: L'ID complet du repo HF (si non fourni, utilise HF_DATASET_REPO_ID).
|
| 31 |
+
:return: (Succès: bool, Message: str, Chemin complet du repo: Optional[str])
|
| 32 |
"""
|
| 33 |
repo_id = repo_id if repo_id else HF_DATASET_REPO_ID
|
| 34 |
|
| 35 |
if not repo_id:
|
| 36 |
+
return False, "Erreur de configuration: Repository Hugging Face non défini (HF_DATASET_REPO_ID manquant).", None
|
|
|
|
| 37 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 38 |
try:
|
| 39 |
+
if not os.path.isdir(local_folder_path):
|
| 40 |
+
return False, f"Erreur: Le dossier local pour le déploiement ID '{deploy_id}' est introuvable.", None
|
| 41 |
+
|
| 42 |
+
# path_in_repo est le chemin où les fichiers seront stockés dans le repo (le dossier du projet)
|
| 43 |
+
hf_folder_path = f"{deploy_id}"
|
| 44 |
+
|
| 45 |
+
logger.info(f"Début du téléversement de {local_folder_path} vers HF repo: {repo_id}/{hf_folder_path}")
|
| 46 |
+
|
| 47 |
+
api.upload_folder(
|
| 48 |
folder_path=local_folder_path,
|
| 49 |
repo_id=repo_id,
|
| 50 |
+
path_in_repo=hf_folder_path,
|
| 51 |
+
repo_type="dataset",
|
| 52 |
+
commit_message=f"Ajout du site web statique pour le projet ID: {deploy_id}",
|
| 53 |
+
delete_old_files=True
|
| 54 |
)
|
| 55 |
|
| 56 |
+
full_repo_path = f"https://huggingface.co/datasets/{repo_id}/tree/main/{deploy_id}"
|
| 57 |
+
logger.info(f"Téléversement HF réussi pour le projet {deploy_id}.")
|
| 58 |
+
|
| 59 |
+
return True, "Téléversement vers Hugging Face réussi.", full_repo_path
|
| 60 |
|
| 61 |
except HfHubHTTPError as e:
|
| 62 |
+
error_message = f"Erreur API Hugging Face (vérifiez votre jeton d'API et les permissions): {e.response.text}"
|
| 63 |
+
logger.error(error_message)
|
| 64 |
+
return False, error_message, None
|
| 65 |
except Exception as e:
|
| 66 |
+
logger.error(f"Erreur lors du téléchargement HF pour {deploy_id}: {e}")
|
| 67 |
+
return False, f"Échec du téléchargement Hugging Face: {str(e)}", None
|
| 68 |
|
| 69 |
|
| 70 |
def get_project_files_from_hf(
|