使用发现API从Google云端硬盘下载文件

时间:2016-07-06 16:47:23

标签: python google-drive-api

我在我的应用中使用以下方法与众多基于Google Discovery的API进行互动:

service, flags = sample_tools.init(
    sys.argv, 'drive', 'v3', __doc__, __file__, 
    scope='https://www.googleapis.com/auth/drive')
try:
    self.data = service.files().get(
        fileId = file_id
        ).execute()

except Exception as e:
    print str(e)  

但是,为了下载文件,我需要添加" alt ='媒体'" URL的参数。我通过这种实现找不到任何关于如何做到这一点的文档。我尝试过使用" export"方法,但仅适用于Google文档,而不适用于其他类型的文件(我的是CSV)。

谢谢!

1 个答案:

答案 0 :(得分:1)

您正在寻找的是Downloading a file using alt=media

  

要下载文件,您需要向其发出授权的HTTP GET请求   文件的资源URL并包含查询参数alt=media

例如:

GET https://www.googleapis.com/drive/v3/files/0B9jNhSvVjoIVM3dKcGRKRmVIOVU?alt=media
Authorization: Bearer ya29.AHESVbXTUv5mHMo3RYfmS1YJonjzzdTOFZwvyOAUVhrs

这是Python的一个片段:

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)

如果您对CSV的直接下载链接感兴趣,也可以尝试this guide

https://docs.google.com/spreadsheets/d/FILE_ID/edit?usp=sharing