Google Drive API v3 查找文件夹和子文件夹中的所有文件
Google Drive API v3 find all files in folder and children
我有 google api 客户端用于 java 脚本
我创建了所有请求。
我的应用程序中的最后一个请求是获取文件夹和子文件夹中的所有文件。
请求获取父文件夹中的所有文件。
let files = await obj.staticProperty.gapi.client.drive.files.list({
'q': `'${object['folder']['id']}' in parents`,
'pageSize': 10
})
如何获取子文件夹中的所有文件?
我递归执行此操作,请注意我有一个收集文件的回调 - 我将 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);
});
}
这是我的 "Drive Dashboard" 在 https://drivedashboard.saisols.com/
的代码
我有 google api 客户端用于 java 脚本 我创建了所有请求。 我的应用程序中的最后一个请求是获取文件夹和子文件夹中的所有文件。 请求获取父文件夹中的所有文件。
let files = await obj.staticProperty.gapi.client.drive.files.list({
'q': `'${object['folder']['id']}' in parents`,
'pageSize': 10
})
如何获取子文件夹中的所有文件?
我递归执行此操作,请注意我有一个收集文件的回调 - 我将 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);
});
}
这是我的 "Drive Dashboard" 在 https://drivedashboard.saisols.com/
的代码