nexus-uploader / uploader.py
ChandimaPrabath's picture
init
a8f0097
from huggingface_hub import HfApi
from pathlib import Path
class HuggingFaceUploader:
def __init__(self, hf_token: str, repo_id: str):
self.api = HfApi(token=hf_token)
self.repo_id = repo_id
def upload_folder_with_structure(self, folder_path: str, destination_folder: str):
folder_path = Path(folder_path)
destination_folder = Path(destination_folder)
for local_path in folder_path.rglob('*'):
if local_path.is_file():
# Define the path in the repository
relative_path = local_path.relative_to(folder_path)
path_in_repo = str(destination_folder / relative_path).replace("\\", "/") # Ensuring forward slashes
# Upload each file to the correct path in the repository
self.api.upload_file(
path_or_fileobj=str(local_path),
path_in_repo=path_in_repo,
repo_id=self.repo_id,
repo_type="model"
)
print(f"Uploaded '{local_path}' to '{path_in_repo}' in the Hugging Face repository '{self.repo_id}'.")
if __name__ == "__main__":
hf_token = ""
repo_id = ""
folder_path = "content" # Set the local folder path
destination_folder = "hindi" # Adjust the destination folder structure as needed
uploader = HuggingFaceUploader(hf_token, repo_id)
uploader.upload_folder_with_structure(folder_path, destination_folder)