Files
ihrm/horilla_backup/gdrive.py

29 lines
859 B
Python
Raw Normal View History

2025-02-14 10:01:07 +05:30
import os
from google.oauth2 import service_account
2025-02-14 10:01:07 +05:30
from googleapiclient.discovery import build
from googleapiclient.http import MediaFileUpload
2025-02-14 10:01:07 +05:30
SCOPES = ["https://www.googleapis.com/auth/drive"]
def authenticate(service_account_file):
2025-02-14 10:01:07 +05:30
creds = service_account.Credentials.from_service_account_file(
service_account_file, scopes=SCOPES
)
return creds
2025-02-14 10:01:07 +05:30
def upload_file(file_path, service_account_file, parent_folder_id):
creds = authenticate(service_account_file)
2025-02-14 10:01:07 +05:30
service = build("drive", "v3", credentials=creds)
parent_folder_id = parent_folder_id
2025-02-14 10:01:07 +05:30
file_metadata = {"name": os.path.basename(file_path), "parents": [parent_folder_id]}
media = MediaFileUpload(file_path, resumable=True)
2025-02-14 10:01:07 +05:30
file = (
service.files()
.create(body=file_metadata, media_body=media, fields="id")
.execute()
)