2

我正在尝试使用 python api 从 Google Drive 下载一些图像文件。我使用的代码首先获取文件资源对象,然后找到 downloadUrl 并使用它来下载文件。问题是 gif 和 png 文件似乎没有下载 url。

service = self.user.profile.DriveService()
conditions = []
conditions.append("title='image.png')
conditions.append("trashed = false")
response = service.files().list(q=" and ".join(conditions)).execute()
f = response['items'][0]
url = f['downloadUrl']
# Now download the file from url
...

这适用于下载文本和 html 文件。当我尝试下载图像文件时,它们具有 downloadUrl 属性。这是一个示例图像文件资源

u'alternateLink':  u'https://docs.google.com/document/d/1S9amlqcwLl9FOYmHFhv_RK_NwPI47IWj8iGcIK9p8hk/edit',
u'appDataContents': False,
u'createdDate': u'2013-01-20T08:39:55.314Z',
u'editable': True,
u'embedLink': u'https://docs.google.com/document/d/1S9amlqcwLl9FOYmHFhv_RK_NwPI47IWj8iGcIK9p8hk/preview',
u'etag': u'"Q0cVodxX8sh4vfxZTlOyWcmmc0k/MTM1ODY3MTE5NzY5Nw"',
u'exportLinks': {u'application/pdf': u'https://docs.google.com/feeds/download/documents/export/Export?   id=1S9amlqcwLl9FOYmHFhv_RK_NwPI47IWj8iGcIK9p8hk&exportFormat=pdf',
                 u'application/rtf':     u'https://docs.google.com/feeds/download/documents/export/Export?id=1S9amlqcwLl9FOYmHFhv_RK_NwPI47IWj8iGcIK9p8hk&exportFormat=rtf',
              u'application/vnd.oasis.opendocument.text': u'https://docs.google.com/feeds/download/documents/export/Export?id=1S9amlqcwLl9FOYmHFhv_RK_NwPI47IWj8iGcIK9p8hk&exportFormat=odt',
              u'application/vnd.openxmlformats-officedocument.wordprocessingml.document': u'https://docs.google.com/feeds/download/documents/export/Export?id=1S9amlqcwLl9FOYmHFhv_RK_NwPI47IWj8iGcIK9p8hk&exportFormat=docx',
              u'text/html': u'https://docs.google.com/feeds/download/documents/export/Export?id=1S9amlqcwLl9FOYmHFhv_RK_NwPI47IWj8iGcIK9p8hk&exportFormat=html',
              u'text/plain': u'https://docs.google.com/feeds/download/documents/export/Export?id=1S9amlqcwLl9FOYmHFhv_RK_NwPI47IWj8iGcIK9p8hk&exportFormat=txt'},
u'iconLink': u'https://ssl.gstatic.com/docs/doclist/images/icon_11_document_list.png',
u'id': u'1S9amlqcwLl9FOYmHFhv_RK_NwPI47IWj8iGcIK9p8hk',
u'kind': u'drive#file',
u'labels': {...},
u'lastModifyingUserName': u'Max Ferguson',
u'lastViewedByMeDate': u'2013-01-20T08:39:57.697Z',
u'mimeType': u'application/vnd.google-apps.document',
u'modifiedByMeDate': u'2013-01-20T08:39:57.697Z',
u'modifiedDate': u'2013-01-20T08:39:57.697Z',
u'ownerNames': [u'Max Ferguson'],
u'parents': [{u'id': u'0BxiZtRrps_bKaXM1OXJtUXBkOTg',
           u'isRoot': False,
           u'kind': u'drive#parentReference',
           u'parentLink': u'https://www.googleapis.com/drive/v2/files/0BxiZtRrps_bKaXM1OXJtUXBkOTg',
           u'selfLink': u'https://www.googleapis.com/drive/v2/files/1S9amlqcwLl9FOYmHFhv_RK_NwPI47IWj8iGcIK9p8hk/parents/0BxiZtRrps_bKaXM1OXJtUXBkOTg'}],

我不明白为什么没有downloadUrl。这可能是因为 mimetype 是 application/vnd.google-apps.document 但该文件绝对是图像。缩略图链接等指向图像。任何帮助,将不胜感激。

4

1 回答 1

2

Google 原生格式的文档 (application/vnd.google-apps.XXX) 没有该downloadUrl属性,您可以使用该exportLinks集合以支持的格式之一下载它们:

https://developers.google.com/drive/manage-downloads#downloading_google_documents

于 2013-01-20T19:48:43.323 回答