#!/usr/bin/env python3 """ Contoh: Upload file menggunakan Python + requests Cara jalankan: python3 examples/python-requests.py """ import requests import os import sys from pathlib import Path # Konfigurasi API_URL = 'http://localhost:3000/api/upload' HF_TOKEN = os.getenv('HF_TOKEN', 'your_hf_token_here') REPO_ID = os.getenv('HF_REPO_ID', 'username/dataset-name') FILE_PATH = './examples/sample-data.csv' def upload_file(): """Upload file ke API""" # Validasi file if not Path(FILE_PATH).exists(): print(f'❌ File tidak ditemukan: {FILE_PATH}') print('📝 Membuat file contoh...') with open(FILE_PATH, 'w') as f: f.write('id,name,value\n') f.write('1,Alice,100\n') f.write('2,Bob,200\n') try: # Setup request with open(FILE_PATH, 'rb') as f: files = {'file': f} data = { 'repo_id': REPO_ID, 'token': HF_TOKEN, 'subfolder': 'datasets' } print('📤 Uploading file...') response = requests.post( API_URL, files=files, data=data, timeout=30 ) # Check response if response.status_code == 200: result = response.json() print('✅ Upload berhasil!') print('📊 Response:') import json print(json.dumps(result, indent=2)) return result else: print(f'❌ Error {response.status_code}:') print(response.json()) sys.exit(1) except requests.exceptions.ConnectionError: print('❌ Tidak dapat connect ke API') print(f' Pastikan server berjalan di {API_URL}') sys.exit(1) except Exception as e: print(f'❌ Error: {str(e)}') sys.exit(1) if __name__ == '__main__': upload_file()