Интеграция Python с Google Диском: методы загрузки, создания папок и поиска файлов

Для взаимодействия с Google Диском с помощью Python вы можете использовать Google Drive API. Существует несколько методов, которые можно использовать для выполнения различных операций, таких как загрузка файлов, создание папок, поиск файлов и т. д. Вот некоторые из распространенных методов с примерами кода:

  1. Аутентификация.
    Прежде чем взаимодействовать с Google Диском, вам необходимо подтвердить подлинность своего приложения и получить учетные данные. Вот пример аутентификации с использованием учетных данных OAuth2:
import os
from google.oauth2 import service_account
from googleapiclient.discovery import build
# Path to your credentials JSON file
credentials_path = 'path/to/credentials.json'
# Load credentials
credentials = service_account.Credentials.from_service_account_file(
    credentials_path, scopes=['https://www.googleapis.com/auth/drive']
)
# Create a Drive service object
drive_service = build('drive', 'v3', credentials=credentials)
  1. Загрузка файла.
    Чтобы загрузить файл на Google Диск, вы можете использовать метод createслужбы Диска. Вот пример загрузки файла:
def upload_file(file_path, folder_id=None):
    file_metadata = {'name': os.path.basename(file_path)}
    if folder_id:
        file_metadata['parents'] = [folder_id]
    media = MediaFileUpload(file_path)
    file = drive_service.files().create(
        body=file_metadata,
        media_body=media,
        fields='id'
    ).execute()
    print('File ID:', file.get('id'))
  1. Создание папки.
    Чтобы создать папку на Google Диске, вы можете использовать метод createс соответствующим типом MIME. Вот пример:
def create_folder(folder_name, parent_folder_id=None):
    folder_metadata = {
        'name': folder_name,
        'mimeType': 'application/vnd.google-apps.folder'
    }
    if parent_folder_id:
        folder_metadata['parents'] = [parent_folder_id]
    folder = drive_service.files().create(
        body=folder_metadata,
        fields='id'
    ).execute()
    print('Folder ID:', folder.get('id'))
  1. Поиск файлов.
    Вы можете искать файлы на Google Диске, используя метод listи применяя фильтры. Вот пример:
def search_files(query):
    results = drive_service.files().list(
        q=query,
        fields='files(id, name)'
    ).execute()
    files = results.get('files', [])
    if files:
        print('Matching Files:')
        for file in files:
            print(f"{file['name']} ({file['id']})")
    else:
        print('No files found.')

Это всего лишь несколько способов взаимодействия с Google Диском с помощью Python. Вы можете изучить полную документацию API Google Диска, чтобы узнать больше о методах и функциях.