Spaces:
Running
Running
| import os | |
| import shutil | |
| from apscheduler.schedulers.background import BackgroundScheduler | |
| import gradio as gr | |
| from huggingface_hub import HfApi | |
| api = HfApi(token=os.environ.get("HF_TOKEN")) | |
| os.makedirs("tmp/test_data") | |
| counter = 0 # For name of file within one upload | |
| counter_2 = 0 # For name of each zip file | |
| def create_file(): | |
| """Stores a file locally | |
| """ | |
| global counter | |
| path = f"tmp/test_data/f{counter}.txt" | |
| f = open(path, "w") | |
| f.write("Test") | |
| f.close() | |
| counter += 1 | |
| return f"File saved! {path}" | |
| def upload_files(): | |
| """Zips files and uploads to dataset. Local data is deleted | |
| """ | |
| global counter, counter_2 | |
| shutil.make_archive("tmp/result", 'zip', "tmp/test_data") | |
| api.upload_file( | |
| path_or_fileobj="tmp/result.zip", | |
| path_in_repo=f"result{counter_2}.zip", | |
| repo_id="osanseviero/space_sync_batch", | |
| repo_type="dataset", | |
| ) | |
| counter_2 += 1 | |
| shutil.rmtree("tmp") | |
| os.makedirs("tmp/test_data") | |
| counter = 0 | |
| scheduler = BackgroundScheduler() | |
| # Refresh every minute | |
| scheduler.add_job(func=upload_files, trigger="interval", seconds=60) | |
| scheduler.start() | |
| demo = gr.Interface(fn=create_file, inputs=[], outputs="text") | |
| demo.launch() |