Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

398
Visualizações
Use la API de Google Drive para almacenar datos de aplicaciones

Estoy tratando de almacenar un objeto json que contiene información de configuración en un archivo de datos de aplicación de Google Drive. Actualmente estoy escribiendo la aplicación en JS que se ejecuta en el lado del cliente . Usando la API de Google Drive, actualmente puedo buscar el archivo en la carpeta appdata. ¿Cómo haría para generar un nuevo archivo y almacenarlo en la carpeta appdata si no se encuentra la configuración?

 var request = gapi.client.drive.files.list({ 'q': '\'appdata\' in parents' }); request.execute(function(resp) { for (i in resp.items) { if(resp.items[i].title == FILENAME) { fileId = resp.items[i].id; readFile(); //Function to read file return; } } //Create the new file if not found });
about 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

El cliente gapi no proporciona un método para cargar archivos en Google Drive (lo hace para metadatos), pero aún exponen un punto final de API. Aquí hay un ejemplo que he estado usando para la API V3

 function saveFile(file, fileName, callback) { var file = new Blob([JSON.stringify(file)], {type: 'application/json'}); var metadata = { 'name': fileName, // Filename at Google Drive 'mimeType': 'application/json', // mimeType at Google Drive 'parents': ['appDataFolder'], // Folder ID at Google Drive }; var accessToken = gapi.auth.getToken().access_token; // Here gapi is used for retrieving the access token. var form = new FormData(); form.append('metadata', new Blob([JSON.stringify(metadata)], {type: 'application/json'})); form.append('file', file); var xhr = new XMLHttpRequest(); xhr.open('post', 'https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart&fields=id'); xhr.setRequestHeader('Authorization', 'Bearer ' + accessToken); xhr.responseType = 'json'; xhr.onload = () => { console.log(xhr.response.id); // Retrieve uploaded file ID. callback(xhr.response); }; xhr.send(form); }

Y dado que Google Drive permitirá nombres de archivo duplicados ya que son únicos por ID, uso algo como esto para verificar si ya existe:

 function fileExists(file, fileName){ var request = gapi.client.drive.files.list({ spaces: 'appDataFolder', fields: 'files(id, name, modifiedTime)' }); request.execute(function(res){ var exists = res.files.filter(function(f){ return f.name.toLowerCase() === fileName.toLowerCase(); }).length > 0; if(!exists){ saveFile(file, fileName, function(newFileId){ //Do something with the result }) } }) }
about 4 years ago · Santiago Trujillo Relatório

0

Consulte la documentación sobre el almacenamiento de datos de la aplicación :

La 'Carpeta de datos de la aplicación' es una carpeta especial a la que solo puede acceder su aplicación. Su contenido está oculto para el usuario y para otras aplicaciones. A pesar de estar oculta para el usuario, la carpeta de datos de la aplicación se almacena en la unidad del usuario y, por lo tanto, utiliza la cuota de almacenamiento de la unidad del usuario. La carpeta Datos de la aplicación se puede utilizar para almacenar archivos de configuración, datos de juegos guardados o cualquier otro tipo de archivo con el que el usuario no deba interactuar directamente.

NOTA:

Para poder utilizar su carpeta de datos de la aplicación, solicite acceso al siguiente ámbito:

 https://www.googleapis.com/auth/drive.appdata

Si revisa el código de muestra sobre cómo insertar un archivo en la carpeta de datos de la aplicación (código PHP):

 $fileMetadata = new Google_Service_Drive_DriveFile(array( 'name' => 'config.json', 'parents' => array('appDataFolder') )); $content = file_get_contents('files/config.json'); $file = $driveService->files->create($fileMetadata, array( 'data' => $content, 'mimeType' => 'application/json', 'uploadType' => 'multipart', 'fields' => 'id')); printf("File ID: %s\n", $file->id);

Al agregar appDataFolder como padre para el archivo, se escribirá en appFolder. Luego implemente su propio código de carga/cody para insertar el archivo y su contenido en appFolder.

Espero que esto ayude

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda