Python: поиск и загрузка отсутствующих файлов с диска Google (с помощью ссылки для совместного использования)

Учитывая общую ссылку на папку диска Google (идентификатор папки), я хотел бы сравнить список каталогов в этой папке со списком каталогов по заданному пути и загрузить недостающие файлы.

Я читал о PyDrive но не смог найти элегантный способ доступа к папке диска без аутентификации.

Например:

      files_under_gdrive = ["File1", "File2", "File3"]
files_under_given_path = ["File1", "some_other_file"]

# Download missing files found only in Google Drive
...

files_under_given_path = ["File1", "some_other_file", "File2", "File3"]

Любая подсказка / идея будет принята с благодарностью. Спасибо :)

1 ответ

Решение

Вы можете легко начать со сбора файлов из локального каталога и, например, сохранения их имен в списке.

Впоследствии, чтобы получить файлы с общего диска Google Drive, вы можете использовать Files.list запрос:

      GET https://www.googleapis.com/drive/v3/files

С includeItemsFromAllDrives установлен в true и driveIdв поле установлен соответствующий идентификатор общего диска. В зависимости от ваших конкретных потребностей и требований вы также можете добавить в запрос другие поля.

После получения файлов с общего Google Диска вы можете просто сравнить два списка и на основе результатов загрузить необходимые файлы. Для загрузки файлов вы можете проверить этот фрагмент из :

      file_id = 'ID_OF_THE_FILE_TO_DOWNLOAD'
request = drive_service.files().get_media(fileId=file_id)
fh = io.BytesIO()
downloader = MediaIoBaseDownload(fh, request)
done = False
while done is False:
    status, done = downloader.next_chunk()
    print "Download %d%%." % int(status.progress() * 100)

Тем не менее, я рекомендую вам начать с заполнения Google Drive Quick Start with Python .

Справка

Другие вопросы по тегам