Google drive api 文档列表API回归:更新文档(使用转换)会丢失图像
在使用文档列表API时,Google文档转换最近似乎出现了一些问题。对现有文档条目所做的更新将无法正确转换为Google Docs格式,文档中的图像也不会显示 复制步骤Google drive api 文档列表API回归:更新文档(使用转换)会丢失图像,google-drive-api,google-docs-api,Google Drive Api,Google Docs Api,在使用文档列表API时,Google文档转换最近似乎出现了一些问题。对现有文档条目所做的更新将无法正确转换为Google Docs格式,文档中的图像也不会显示 复制步骤 我有一个.docx文件,它有几行文本和一个图像 使用documents list API,我将文件作为新的条目上传(打开转换),它工作正常。我可以在谷歌文档中打开转换后的文档,它看起来很好 接下来,使用像API这样的文档,我再次将文件作为UPDATE上传到原始条目(打开转换)。现在,当我在谷歌文档中打开转换后的文档时,图像丢失了
.docx
文件,它有几行文本和一个图像新的
条目上传(打开转换),它工作正常。我可以在谷歌文档中打开转换后的文档,它看起来很好UPDATE
上传到原始条目(打开转换)。现在,当我在谷歌文档中打开转换后的文档时,图像丢失了。有一个空白矩形,带有旋转忙碌指示器,显示图像应该在的位置person.docx
的Word文件,其中有一个图像。上传后,会向用户显示一条消息,您可以验证图像是否在Google文档中
DOCX_FILE = 'person.docx'
DOCS_MIME = 'application/vnd.google-apps.document'
:
: # credentials code for user acct auth (OAuth client ID) or service acct auth
:
DRIVE = discovery.build('drive', 'v3', ...) # http= or creds= dep on auth type
body = {'name': DOCX_FILE, 'mimeType': DOCS_MIME}
res = DRIVE.files().create(media_body=DOCX_FILE, body=body,
fields='name,mimeType').execute()
print('Uploaded "%s" (as %s)' % (res['name'], res['mimeType']))
正如OP提到的,创建一个文件和以前一样完美。如果编辑现有文档,则需要像以前一样在文件有效负载之外提供其驱动器文件ID,并调用files().update()
,而不是files().create()
,它也可以工作:
DRIVE_ID = 'YOUR_FILE_ID'. # existing file in Drive
DOCX_FILE = 'person.docx' # Word file to replace the above file with
DOCS_MIME = 'application/vnd.google-apps.document'
:
: # credentials code as above
:
DRIVE = discovery.build('drive', 'v3', ...) # same as above
body = {'name': DOCX_FILE, 'mimeType': DOCS_MIME}
res = DRIVE.files().update(fileId=DRIVE_ID, media_body=DOCX_FILE,
body=body, fields='name,mimeType').execute()
print('Updated "%s" (as %s)' % (res['name'], res['mimeType']))
如果您不熟悉驱动器API,请继续阅读。对于操作驱动器中已经存在的文档,特别是面向文档的操作,您可以使用Google Docs、Sheets和Slides API,但要执行文件级访问,如导入/导出、复制、移动、重命名等,请改用。如果您是驱动器API的新手,除上述示例外,下面还有一些示例:
- 和代码深入——如果您不熟悉上面提到的身份验证代码,那么这很有用
- 加上“穷人的纯文本到PDF转换器”代码深潜(*)
- 仅将Google工作表导出为CSV博客
要了解如何将Google API与Python结合使用的更多信息,请查看我制作的各种Google开发者视频(和)。我设法重现了这个问题,并提交了一个内部错误。一旦我有了调查的结果,我就会更新这个帖子。有什么进展吗?使用最新的驱动器SDK和上载其他文件格式时也会出现此问题。(我看到的是.odt文件。)