這個問題在這里已經有了答案:
我在這里做錯了什么?
uj5u.com熱心網友回復:
我相信你的目標如下。
- 您想使用 Drive API v3 中的“檔案:串列”方法使用 googleapis for Javascript 檢索檔案串列。
- 在這種情況下,您想使用
pageToken.
- 在這種情況下,您想使用
- 您已經能夠使用 Drive API 從 Google Drive 獲取值。
在這種情況下,如何進行以下修改?當您使用 的屬性時fields,為了回傳 的值nextPageToken,需要包含nextPageToken在 的值中fields。
修改后的腳本:
function getList(pageToken) {
return new Promise((resolve, reject) => {
gapi.client.drive.files.list({
"includeItemsFromAllDrives": true,
"orderBy": "name",
"pageSize": 1000,
"q": "'FOLDER_ID' in parents",
"supportsAllDrives": true,
"fields": "files(name,fileExtension,starred,size),nextPageToken",
"pageToken": pageToken
}).then(res => resolve(res)).catch(err => reject(err));
});
}
async function execute() {
let fileList = [];
let pageToken = "";
do {
const obj = await getList(pageToken).catch(err => console.log(err));
if (obj.result.files.length > 0) fileList = [...fileList, ...obj.result.files];
pageToken = obj.result.nextPageToken;
} while (pageToken);
console.log(fileList)
}
- 運行此腳本時,將使用 檢索超過 1000 個檔案的檔案串列
nextPageToken。
筆記:
- 如果您想在 Google Apps 腳本中使用“檔案:串列”的方法,以下執行緒可能會有用。在這種情況下,Google Apps Script 的高級 Google 服務的 Drive API 是版本 2。請注意這一點。
如何使這個谷歌腳本更有效率
無論如何,在 Google Apps Script 中是否可以使用“大小”作為 DriveApp.searchFiles 的搜索引數?
谷歌作業表腳本超時錯誤
使用您的引數的 Google Apps 腳本示例腳本如下。使用此腳本時,請在 Advanced Google Services 中啟用 Drive API。
function myFunction() { let fileList = []; let pageToken = ""; do { const obj = Drive.Files.list({ "includeItemsFromAllDrives": true, "orderBy": "title", "maxResults": 1000, "q": "'FOLDER_ID' in parents", "supportsAllDrives": true, "fields": "nextPageToken,items(title,fileExtension,fileSize,labels(starred))", "pageToken": pageToken }); if (obj.items.length > 0) fileList = [...fileList, ...obj.items]; pageToken = obj.nextPageToken; } while(pageToken); console.log(fileList) }
參考:
- 檔案:串列
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/377817.html
