Estoy llamando a la solicitud del archivo del espacio de trabajo de Google con gapi usando este código
gapi.client.drive.files.export({ fileId: fileId, mimeType: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' }) de ese código obtengo una respuesta de la cadena base64 para convertirla como un blob, pero cuando abro el archivo en Google Docs o el archivo msword está dañado y no funciona, pero si cambio mimeType a application/pdf , funciona
También sucede lo mismo si solicito un archivo con application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
¿Estoy haciendo algo mal aquí o hay otra forma de obtener el espacio de trabajo del archivo?
md5Checksum no está disponible
Finalmente, encontré una solución para este problema de acuerdo con esta documentación oficial . Tenemos dos tipos que podemos descargar desde Google Drive.
aquí mi código cómo solicito el archivo
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())Entonces, después de buscar el archivo del espacio de trabajo de Google, obtendrá una cadena base64 que puede convertir en blob
Como se menciona en la documentación oficial de files.get :
Respuesta
De forma predeterminada, esto responde con un recurso de Archivos en el cuerpo de la respuesta. Si proporciona el parámetro de URL
alt=media, la respuesta incluye el contenido del archivo en el cuerpo de la respuesta. La descarga de contenido conalt=mediasolo funciona si el archivo está almacenado en Drive. Para descargar Documentos, Hojas de cálculo y Presentaciones de Google, use files.export en su lugar . Para obtener más información sobre la descarga de archivos, consulte Descargar archivos.