我以递归方式执行此操作,请注意我有一个收集文件的回调 - 我将 Redux 与 React 一起使用,因此它只是调度一个操作,每次该方法获取更多文件时将一堆文件添加到状态:
function getAllFiles(bearerToken, pageToken = undefined, q = undefined,
callback = (files) => console.log('No callback provided',
files),
onComplete = () => console.log('No onComplete provided'),
) {
axios.get('https://www.googleapis.com/drive/v3/files', {
params: {
corpora: 'user',
fields: 'files(id,name,size,mimeType,parents,webViewLink,trashed),nextPageToken',
// q: 'mimeType = \'application/vnd.google-apps.folder\'',
q: q,
pageSize: 1000,
pageToken: pageToken,
},
headers: {
'Accept': 'application/json',
'Authorization': 'Bearer ' + bearerToken,
},
}).then((result) => {
callback(result.data.files);
if (result.data.nextPageToken) {
getAllFiles(bearerToken, result.data.nextPageToken, q, callback,
onComplete);
} else {
onComplete();
}
}).catch((error) => {
console.error('Error folders result', error);
});
}
这是来自https://drivedashboard.saisols.com/我的“Drive Dashboard”的代码