Как я могу вставить / загрузить файлы в указанную c папку в Google Drive API v3, используя Python - PullRequest
0 голосов
/ 25 апреля 2020

Каждый день я загружаю множество файлов pdf, которые хранятся на моем локальном компьютере P C Чтобы сохранить их все, мне нужно ежедневно создавать папку на диске Google и хранить все файлы pdf в папке с текущей датой.
Моя задача здесь заключается в том, что я успешно завершил кодирование в Python для создания папки с использованием GDrive API v3, но застрял в загрузке всех файлов в только что созданную папку. Ниже приведено мое кодирование того, как мне удалось создать папку к текущей дате:

    import pickle
    import os.path, time
    from googleapiclient.discovery import build
    from google_auth_oauthlib.flow import InstalledAppFlow
    from google.auth.transport.requests import Request
    from apiclient.http import MediaFileUpload
    from datetime import date
    SCOPES = ['https://www.googleapis.com/auth/drive.file']
    CLIENT_SECRET_FILE = 'e:\\Python Programs\\credentials.json'

    creds = None
    if os.path.exists('token.pickle'):
      with open('token.pickle', 'rb') as token:
        creds = pickle.load(token)
    if not creds or not creds.valid:
      if creds and creds.expired and creds.refresh_token:
        creds.refresh(Request())
      else:
        flow = InstalledAppFlow.from_client_secrets_file(CLIENT_SECRET_FILE, SCOPES)
    creds = flow.run_local_server(port=0)
    with open('token.pickle', 'wb') as token:
      pickle.dump(creds, token)

    # main folder ID under which we are going to create subfolder
    parents_ID = '19nKlHGCypKPr40f3vjaEq22kgVkS7OCE'
    # creates sub folder under main folder ID
    fldr_name = date.today().strftime('%d%b%Y')
    mimetype = 'application/vnd.google-apps.folder'
    file_metadata = {'name': fldr_name, 'parents': [parents_ID],'mimeType': mimetype}
    # with following line I could successfully create folder without any problem
    service.files().create(body=file_metadata, fields='id').execute()

    # with following lines, i tried to get the folder ID which was recently created so that I can start coding to upload pdf files onto this.  Here im stuck
    page_token = None
    response =  service.files().list(q="mimeType='application/vnd.google-apps.folder' and name = '27Apr2020' and trashed = false", spaces='drive', fields='nextPageToken, files(id, name)', pageToken=page_token).execute()
    for file in response.get('files', []):
      print(file.get('name'), file.get('id'))
    time.sleep(5)

Я получаю пустой экран на 5 секунд c, затем он исчезает. Пожалуйста, помогите мне загрузить все мои файлы в мою недавно созданную папку.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...