获取 google 工作区文件时出现问题 (JavaScript)
Issue getting google workspace file (JavaScript)
我正在使用此代码通过 gapi 从 google 工作区文件调用请求
gapi.client.drive.files.export({
fileId: fileId,
mimeType: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
})
从该代码中我得到 base64 字符串的响应以转换为 blob 但是当我在 google 中打开文件时 docs 或 msword 文件已损坏并且无法正常工作但是如果我将 mimeType 更改为 application/pdf
有效
如果我使用 application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
请求文件,也会发生同样的事情
我是不是做错了什么,还是有其他方法可以获取文件工作空间
md5校验和不可用
如 official documentation 中所述 files.get
:
Response
By default, this responds with a Files resource in the response body. If you provide the URL parameter alt=media
, then the response includes the file contents in the response body. Downloading content with alt=media
only works if the file is stored in Drive. To download Google Docs, Sheets, and Slides use files.export instead. For further information on downloading files, refer to Download files.
最后我根据这个 official documentation 找到了这个问题的解决方案,我们有两种类型可以从 google 驱动器下载。
这是我请求文件的代码
const res = await drive
.files
.export({
fileId: fileId,
mimeType: yourMimeTarget
})
.then(res => res)
const blob_file = fetch(`data:${yourMimeTarget};base64,${btoa(res.body)}`)
.then(res => res.blob())
所以在您获取 google 工作区文件后,您将获得 base64 字符串,然后您可以将其转换为 blob
我正在使用此代码通过 gapi 从 google 工作区文件调用请求
gapi.client.drive.files.export({
fileId: fileId,
mimeType: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
})
从该代码中我得到 base64 字符串的响应以转换为 blob 但是当我在 google 中打开文件时 docs 或 msword 文件已损坏并且无法正常工作但是如果我将 mimeType 更改为 application/pdf
有效
如果我使用 application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
我是不是做错了什么,还是有其他方法可以获取文件工作空间
md5校验和不可用
如 official documentation 中所述 files.get
:
Response
By default, this responds with a Files resource in the response body. If you provide the URL parameter
alt=media
, then the response includes the file contents in the response body. Downloading content withalt=media
only works if the file is stored in Drive. To download Google Docs, Sheets, and Slides use files.export instead. For further information on downloading files, refer to Download files.
最后我根据这个 official documentation 找到了这个问题的解决方案,我们有两种类型可以从 google 驱动器下载。
这是我请求文件的代码
const res = await drive
.files
.export({
fileId: fileId,
mimeType: yourMimeTarget
})
.then(res => res)
const blob_file = fetch(`data:${yourMimeTarget};base64,${btoa(res.body)}`)
.then(res => res.blob())
所以在您获取 google 工作区文件后,您将获得 base64 字符串,然后您可以将其转换为 blob