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