from googleapiclient.discovery import build from googleapiclient.http import MediaFileUpload from google.oauth2 import service_account import json import os import traceback def upload_to_drive(local_path, filename): creds_dict = json.loads(os.environ["GOOGLE_CREDS_JSON"]) creds = service_account.Credentials.from_service_account_info(creds_dict) service = build("drive", "v3", credentials=creds) file_metadata = { "name": filename, "parents": ["1RQx-f1UGOAY248bCIRasenJiQCHsD4Eq"] } media = MediaFileUpload(local_path, mimetype="application/zip") try: uploaded_file = service.files().create( body=file_metadata, media_body=media, fields="id" ).execute() except Exception as e: print("Upload failed:") print(traceback.format_exc()) # Or log it as needed raise Exception(f"Upload to Google Drive failed: {e}") return uploaded_file.get("id")