API Google Диска Получить метаданные файла

Кто-нибудь знает, как использовать API GoggleDrive для получения файлов из категории «Общие диски».

У меня есть вызов API, который я могу использовать для получения метаданных через FileID, который работает для файлов, к которым у меня есть общий доступ, но когда я пытаюсь получить идентификатор файла, который находится на общем диске, я получаю сообщение об ошибке «Файл не найден».

См. код ниже с выводом:


def GetFileInfoById(TheFileId):

    service = authenticate()
    # Call the Drive v3 API
    results = service.files().get(fileId=TheFileId,
        fields = "id, name, md5Checksum, webViewLink").execute()
    pprint(results)

if __name__ == "__main__":
  GetFileInfoById('  FILE ID Here')

Результат, который я получаю:

    raise HttpError(resp, content, uri=self.uri)
googleapiclient.errors.HttpError: <HttpError 404 when requesting 
https://www.googleapis.com/drive/v3/files/ File ID Here ?fields=id%2C+name%2Cmd5Checksum%2CwebViewLink&
alt=json returned "File not found: 1xJImDFvjIEJlLKUxFqzarm6fSWV8Vlxe.". Details: 
"[{'message': 'File not found: File ID Here.', 'domain': 'global', 'reason': 'notFound', 
'location': 'fileId', 'locationType': 'parameter'}]">

Этот код работает должным образом для файлов, которыми я владею, и файлов, которыми мне поделились. Я получаю список идентификаторов файлов из API Google, включая мой общий диск (я использовал параметр corpora='AllDrives' в вызове списка). Есть ли способ включить все диски в вызов get? Вызов списка не включал все, пока я не добавил параметры...

какой код вы используете для авторизации?

Linda Lawton - DaImTo 01.05.2024 10:08

Используя обычный код учетных данных, который вы видите в кратком руководстве по Python. Это работает нормально. Параметр supportAllDrives — это то, что мне нужно.

Todd B 02.05.2024 13:16
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
2
97
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если вы пытаетесь получить файлы из раздела «Общие диски» с помощью метода Drive API get, вам может потребоваться использовать параметр supportsAllDrivesзапроса. Если в вашем вызове API для него не установлено значение true, он выдает ту же ошибку HttpError 404.

supportsAllDrives
boolean
○ Поддерживает ли запрашивающее приложение как «Мои диски», так и общие диски.

Ваш вызов API должен выглядеть примерно так:

# Call the Drive v3 API
    results = service.files().get(fileId=TheFileId,
                                  supportsAllDrives=True,  # Add supportsAllDrives parameter
                                  fields = "id, name, md5Checksum, webViewLink").execute()

Демо

  • Я провел быстрый тест, извлекая файл из папки общего диска, используя параметр supportsAllDrives (true), и он вернул ответ файла, как показано ниже:


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