我想使用Drive Api从谷歌驱动器下载文件

时间:2018-04-12 07:13:30

标签: python google-api google-drive-api google-api-python-client google-apis-explorer

在此代码中:

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)

我不知道如何获取file_id,我在上传时收到了file_id,但现在我无法弄清楚如何获取Google云端硬盘中存在的文件的file_id。

实施例。如果我上传的文件名称为A001002.pdf,我该如何获取该文件的文件ID。 网上有一些我无法理解的参考资料。

link:files.list

任何帮助?

2 个答案:

答案 0 :(得分:1)

file.list方法包含一个q参数,用于搜索

  

获取https://www.googleapis.com/drive/v3/files?q=name+%3D+'你好'& key = {YOUR_API_KEY}

Python猜猜

"""
Shows basic usage of the Drive v3 API.

Creates a Drive v3 API service and prints the names and ids of the last 10 files
the user has access to.
"""
from __future__ import print_function
from apiclient.discovery import build
from httplib2 import Http
from oauth2client import file, client, tools

# Setup the Drive v3 API
SCOPES = 'https://www.googleapis.com/auth/drive.metadata.readonly'
store = file.Storage('credentials.json')
creds = store.get()
if not creds or creds.invalid:
    flow = client.flow_from_clientsecrets('client_secret.json', SCOPES)
    creds = tools.run_flow(flow, store)
service = build('drive', 'v3', http=creds.authorize(Http()))

# Call the Drive v3 API
results = service.files().list(
    pageSize=10, fields="*").execute()
items = results.get('files', [])
if not items:
    print('No files found.')
else:
    print('Files:')
    for item in items:
        print('{0} ({1})'.format(item['name'], item['id']))

请注意,此示例未显示如何添加其他参数我仍然使用Google搜索,但我不是python开发者,您可能比我更了解如何执行此操作。

答案 1 :(得分:0)

根据您的实现,还有另一种选择。如果您不需要以编程方式获取fileID,则只需从浏览器中在google文档中打开文件,该ID就会显示在网址中。