| 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()) |
| raise Exception(f"Upload to Google Drive failed: {e}") |
|
|
| return uploaded_file.get("id") |
|
|