我正在尝试使用Google Drive API从Google Drive文件夹中获取所有文件。问题是我有大约6000个文件,但maxResults可以设置为1000。我知道我应该使用nextPageToken,但是即使使用其示例代码也无法使用。
我尝试了文档中的示例代码,但是它仅返回初始页面的结果,并且不会遍历其他页面。另外,在其代码中,值res.nextPageToken应该是res.data.nextPageToken,而res.files应该是res.data.files。
var pageToken = null;
// Using the NPM module 'async'
async.doWhilst(function (callback) {
drive.files.list({
q: "mimeType='image/jpeg'",
fields: 'nextPageToken, files(id, name)',
spaces: 'drive',
pageToken: pageToken
}, function (err, res) {
if (err) {
// Handle error
console.error(err);
callback(err)
} else {
res.files.forEach(function (file) {
console.log('Found file: ', file.name, file.id);
});
pageToken = res.nextPageToken;
callback();
}
});
}, function () {
return !!pageToken;
}, function (err) {
if (err) {
// Handle error
console.error(err);
} else {
// All pages fetched
}
})
有人知道代码出了什么问题,为什么它不遍历具有nextPageToken的所有页面?
Google API文档和示例代码在这里:https://developers.google.com/drive/api/v3/search-files
感谢您的帮助
我在尝试使用此代码时遇到问题。
我已下载aSync与“ node npm install async”它没有帮助
我收到以下错误:
at C:\code\node_modules\googleapis-common\build\src\apirequest.js:48:53
at runMicrotasks (<anonymous>)
at processTicksAndRejections (internal/process/task_queues.js:93:5)
(node:80696)UnhandledPromiseRejectionWarning:未处理的承诺拒绝。引发此错误的原因可能是抛出了一个没有catch块的异步函数,或者是拒绝了一个.catch()无法处理的承诺。 (拒绝ID:80)
或
async.doWhilst(function (callback) {
^
ReferenceError: async is not defined
at listFiles (C:\code\files.js:86:1)
at C:\code\files.js:44:5
[90m at FSReqCallback.readFileAfterClose [as oncomplete] (internal/fs/read_file_context.js:61:3)[39m
我正在尝试列出超过4000个遭到修改的文件攻击,这些修改已复制到Google驱动器中。尽管有实时测试api,但我无法获得超过100个文件,但我可以手动将其列出超过1000个文件,这非常令人沮丧!