File size: 914 Bytes
6612d28
 
 
 
 
 
 
 
 
 
 
 
 
123b195
6612d28
 
e35a7d2
 
 
 
 
 
 
 
 
 
 
6612d28
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
from googleapiclient.discovery import build
from googleapiclient.http import MediaFileUpload
from google.oauth2 import service_account
import json
import os

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:
        import traceback
        st.error("Upload failed:")
        st.code(traceback.format_exc())
        raise

    return uploaded_file.get("id")