Estoy tratando de obtener la lista de archivos y carpetas de una carpeta en particular en Google Drive usando node.js. Sin embargo, solo obtengo la lista de carpetas y no los archivos dentro de esas carpetas. ¿Qué estoy haciendo mal?
Aquí está mi código.
app.get('/getFF', (req, res) => { var folderid = <'my folder id'>; var query = "'" + folderid + "' in parents"; drive.files.list({q: query, fields: 'files(id)'}, (err, resp) => { if (err) throw err; const files = resp.data.files; if (files.length) { files.map((file) => { console.log(file); }); res.send(files); } else { resp.send('No files found'); } });})
Creo que su objetivo y su situación actual son los siguientes.
drive.files.list({q: query, fields: 'files(id)'}) with var query = "'" + folderid + "' in parents" , la lista de archivos del se recuperan los archivos y carpetas justo debajo de la carpeta de folderid de carpeta. Parece que esta es la especificación actual. Para recuperar la lista de archivos de todos los archivos en la carpeta específica que tiene las subcarpetas, es necesario recuperar la lista de archivos de cada subcarpeta.Al principio, instale la biblioteca de la siguiente manera.
$ npm install --save-dev google-drive-getfilelisto
$ npm install --global google-drive-getfilelist const getfilelist = require("google-drive-getfilelist"); const topFolderId = "###"; // Please set the top folder ID. getfilelist.GetFileList( { auth: auth, fields: "files(id)", id: topFolderId, }, (err, res) => { if (err) { console.log(err); return; } const fileList = res.fileList.flatMap(({ files }) => files); console.log(fileList); } );auth es la auth de const drive = google.drive({version: 'v3', auth}) . Cuando se ejecuta el script anterior, se obtiene el siguiente resultado en console.log(fileList); . fileList es la lista de archivos de todos los archivos en la carpeta específica que tiene las subcarpetas.
[ { id: '###' }, { id: '###' }, , , , ]