""" hf_video_storage.py — lazy-bubble large file storage backed by a private HF dataset repo. Upload returns immediately; the recipient's download pulls the bytes then permanently deletes the file from the repo. """ import os import uuid import requests from huggingface_hub import HfApi VIDEO_REPO = os.environ.get("VIDEO_DATASET_REPO", "Brighton233j/Video-Temp-Storage") _HF_TOKEN = os.environ.get("HF_TOKEN") or os.environ.get("Hf_token") _api = HfApi(token=_HF_TOKEN) def upload_large_file(file_bytes, filename, mime_type=None): ext = os.path.splitext(filename)[1] or "" path_in_repo = f"{uuid.uuid4().hex}{ext}" _api.upload_file( path_or_fileobj=file_bytes, path_in_repo=path_in_repo, repo_id=VIDEO_REPO, repo_type="dataset", commit_message=f"Upload {filename}", ) return {"id": path_in_repo, "name": filename} def download_and_delete(file_id): url = f"https://huggingface.co/datasets/{VIDEO_REPO}/resolve/main/{file_id}" resp = requests.get(url, headers={"Authorization": f"Bearer {_HF_TOKEN}"}) resp.raise_for_status() file_bytes = resp.content _api.delete_file( path_in_repo=file_id, repo_id=VIDEO_REPO, repo_type="dataset", commit_message=f"Delete downloaded file {file_id}", ) return file_bytes, file_id