Estoy usando la API de Google y quiero descargar archivos de la interfaz de usuario a mi unidad de Google.
Como encontré en la documentación de la API de Google Drive aquí , quiero usar la importación simple.
Por el momento tengo dicho código para mi evento de entrada onChange.
const onLoadFile = async (e: { target: { files: any } }) => { const fileData = e.target.files[0]; //gapi request uploadFile(body); return null; };subir archivo:
const uploadFile = async (body: string) => { const result = await gapiRequest({ path: `${ENDPOINT}/upload/drive/v3/files`, method: 'POST', body, }); setUploadFileData(result); };gapiSolicitud:
const gapiRequest = async (options: gapi.client.RequestOptions): Promise<any> => new Promise<any>((resolve, reject) => gapi.client.request(options).execute((res) => { resolve(res); if (!res) { reject(res); } }) );Necesito saber qué cuerpo de solicitud necesito crear para dicha solicitud.
El body de la solicitud debe consistir en un form que contenga tanto los metadatos como el archivo, así:
const metadata = { "name": "yourFilename", "mimeType": "text/plain", // whatever is appropriate in your case "parents": ["folder id or 'root'"], // Google Drive folder id }; const form = new FormData(); form.append('metadata', new Blob([JSON.stringify(metadata)], { type: 'application/json' })); form.append('file', file); // file could be a blob or similar Es posible que también deba agregar un parámetro uploadType a su propiedad de path . El valor de multipart funciona incluso para cargas simples.
Ver también aquí: https://stackoverflow.com/a/68595887/7821823