29 lines
859 B
Python
29 lines
859 B
Python
import os
|
|
|
|
from google.oauth2 import service_account
|
|
from googleapiclient.discovery import build
|
|
from googleapiclient.http import MediaFileUpload
|
|
|
|
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()
|
|
)
|