30 lines
894 B
Python
30 lines
894 B
Python
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()
|