//Instalación normal mediante NPM const { google } = require('googleapis'); const googleAuth = require('google-auth-library'); const fs = require('fs'); require('../config/config'); drive = google.drive('v3'); credenciales = JSON.parse(fs.readFileSync('./cred.json', 'utf8')); //Crear objeto de autorización JWT jwtClient = new google.auth.JWT( credenciales.client_email, null, credenciales.private_key, ['https://www.googleapis.com/auth/drive'] ); const list = () => { return new Promise((resolve, reject) => { jwtClient.authorize((err, tokens) => { if (err) reject('Error de autorización: ' + err); drive.files.list( { auth: jwtClient, corpora: 'user', supportsTeamDrives: true, includeTeamDriveItems: true, spaces: 'drive', }, async (err, resp) => { if (err) { reject('Ha habido un error en la petición: ' + err); return; } resolve(resp.data.files); } ); }); }); }; const deleteFile = (fileId) => { return new Promise((resolve, reject) => { jwtClient.authorize(async (err, tokens) => { if (err) reject(err); drive.files.delete( { fileId, auth: jwtClient, }, (err, resp) => { if (err) reject(err); resolve(resp); } ); }); }); }; // CREAR CARPETA const mkDir = (name) => { return new Promise((resolve, reject) => { jwtClient.authorize((err, tokens) => { if (err) reject('Error de autorización: ' + err); let requestBody = { name, mimeType: 'application/vnd.google-apps.folder', parents: [process.env.CARPETA], }; drive.files.create( { fields: 'id', auth: jwtClient, requestBody, }, (err, res) => { if (err) reject(err); resolve(res.data.id); } ); }); }); }; // CREAR ARCHIVO const uploadFile = (file, name, mimeType, parent) => { return new Promise((resolve, reject) => { jwtClient.authorize(function (err, tokens) { if (err) reject('Error de autorización: ' + err); let requestBody = { name, parents: [parent], }; let media = { mimeType: mimeType, body: fs.createReadStream(`${file}`), }; drive.files.create( { media: media, fields: 'id', requestBody, auth: jwtClient, }, (err, file) => { if (err) reject(err); resolve(file.data.id); } ); }); }); }; //deleteFile(""); //mkDir("316313528"); //uploadFile("arturo.jpg","image/jpeg","1DswUbL4uWE2RlB01XHLAIlPwh_0AXBHw"); //list() module.exports = { deleteFile, mkDir, uploadFile, list, };