То, что вы спрашиваете, невозможно, вы не можете прочитать информацию о файле, не загрузив реальный файл. Если вы подумаете об этом, то увидите, что бессмысленно иметь возможность готовить байты, не попав на ваш компьютер.
Если вы имеете в виду не создание реального файла, вы можете попробовать использовать модуль io и сохраните его в памяти.
На самом деле есть примеры в документации Google :
file_id = '0BwwA4oUTeiV1UVNwOHItT0xfa2M'
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)
В этом случае мы создаем request
с get_media()
метод без его выполнения, после этого мы вводим запрос к MediaIoBaseDownload
, этот класс отвечает за загрузку данных в виде кусков (в случае, если файл большой) в io.Base объект fh
в этом фрагменте кода.
Теперь, когда я думаю об этом, в этом случае, когда файл достаточно мал, вы, вероятно, могли бы просто выполнить запрос get_media без необходимости разбивать на части скачать.
Так что, вероятно, в вашем случае просто выполните следующий код
service = build('drive', 'v3', credentials=creds)
file_id = "<your file ID> "
response = service.files().get_media(fileId=file_id).execute()
print(response)
{
jola: "sadsa",
saas: 123
}