Python Google Drive API v3 files.export方法抛出403错误:“0”;导出仅支持文档编辑器文件。”;
摘要Python Google Drive API v3 files.export方法抛出403错误:“0”;导出仅支持文档编辑器文件。”;,python,google-drive-api,mime-types,imagedownload,Python,Google Drive Api,Mime Types,Imagedownload,摘要 尝试使用files.export下载JPEG文件,但收到错误403消息:“export仅支持文档编辑器文件。” 说明 我试图在我的一个项目中使用GoogleDriveAPI,它实际上是收集一些图片,将它们存储在驱动器上,然后将它们重新加载以进行处理。非常严格。 在这一点上,我只是简单地遵循其中提供的示例代码片段。现在,我可以上传一张图片到存储器中。尝试下载时,我遇到以下错误消息: googleapiclient.errors.HttpError: <HttpError 403 whe
尝试使用files.export下载JPEG文件,但收到错误403消息:“export仅支持文档编辑器文件。” 说明
我试图在我的一个项目中使用GoogleDriveAPI,它实际上是收集一些图片,将它们存储在驱动器上,然后将它们重新加载以进行处理。非常严格。
在这一点上,我只是简单地遵循其中提供的示例代码片段。现在,我可以上传一张图片到存储器中。尝试下载时,我遇到以下错误消息:
googleapiclient.errors.HttpError: <HttpError 403 when requesting https://www.googleapis.com/drive/v3/files/1D1XpQwrCvOSEy_vlaRQMEGLQJK-AeeZ7/export?mimeType=image%2Fjpeg&alt=media returned "Export only supports Docs Editors files.". Details: "Export only supports Docs Editors files.">
上传成功,我找回文件的ID:
print(file)
{'id': '1aBoMvaHauCRyZOerNFfwM8yQ78RkJkDQ'}
我可以在我的谷歌硬盘上看到它。然后我尝试访问同一个文件:
request = GoogleDrive.files().export_media(fileId=file.get('id'), mimeType="image/jpeg")
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))
错误发生的时间点。我看到网站上的API资源管理器返回了相同的错误,这就是为什么我试图得出结论,我的代码不应该受到责备。这个文件.export
只有两个输入,我不知道我是如何正确使用它的。我查看了类似的问题,但大多数问题都涉及下载文本文档,我的错误消息告诉我这与doctype有关。我是否使用了错误的mimeType
在官方页面上,不显示此特定错误消息
您有什么建议吗?从
导出的错误消息中,导出仅支持文档编辑器文件。
为了下载除Google Workspace文档(文档、电子表格、幻灯片等)以外的文件,很遗憾,无法使用“文件:导出”方法。在您的情况下,当您想要下载图像文件时,请使用“文件:获取”的方法。当您的脚本被修改时,它将变成如下所示
发件人:
致:
参考:
-
- 关于使用“导出”和“获取”下载文件,您可以在上面的官方文件中看到
导出的错误消息中,仅支持文档编辑器文件。
为了下载除Google Workspace文档(文档、电子表格、幻灯片等)以外的文件,不幸的是,无法使用“文件:导出”的方法。在您的情况下,当您想要下载图像文件时,请使用“文件:获取”的方法。当您的脚本被修改时,它将变成如下所示
发件人:
致:
参考:
-
- 关于使用“导出”和“获取”下载文件,您可以在上面的官方文件中看到
request = GoogleDrive.files().export_media(fileId=file.get('id'), mimeType="image/jpeg")
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 = GoogleDrive.files().export_media(fileId=file.get('id'), mimeType="image/jpeg")
request = GoogleDrive.files().get_media(fileId=file.get('id'))