2015-02-11 90 views
0

我正在創建一個應用程序來使用Python備份存儲在Google Drive中的文件。我遇到的第一個問題是,由於某種原因,它只能在每個文件夾中列出最多100個文件。我想我用正確的範圍(「https://www.googleapis.com/auth/drive」),這裏是我使用的代碼行列出文件夾Google Drive API每個文件夾最多隻能列出100個文件

folder_contents = service.files().list(q="'%s' in parents" % folder['id']).execute() 

的內容有什麼辦法來改變上市文件數?我發現在這個線程Google Drive List API - not listed all the documents?,有一種方法可以做到這一點,但NumberToRetrieve不起作用。我試圖在Drive API參考網頁(https://developers.google.com/drive/v2/reference/files/list)中測試它,但它給我一個錯誤。當我從我的代碼中請求列表(我是使用Drive API的新的)時,我也無法弄清楚如何設置這個參數。

在此先感謝。

編輯:我找到了一種方法來增加使用MaxResuls標誌的文件數量。但它只允許列出多達1000個,這還不夠。

回答

4

它是所有REST API分頁輸出列表的標準。 Drive API也不例外。您只需要在JSON響應中監視nextPageToken的存在並通過連續的頁面進行遞歸。

注意:不要犯這樣的錯誤,因爲有些人認爲小於MaxResults的響應是最後一頁。你應該完全依靠nextPageToken。另外,一旦您的代碼有分頁工作,請考慮將maxResults設置恢復爲默認值。我懷疑非默認值的測試不夠好,也更容易出現超時。

+0

直接鏈接到它如何完成:http://stackoverflow.com/questions/22092402/python-google-drive-api-list-the-entire-drive-file-tree – 2015-11-03 04:37:21

0

查詢的默認最大結果是100.必須使用pageToken/nextPageToken來重複它。請參閱Python Google Drive API - 列出整個驅動器文件樹

0

「results = service.files()。list( pageSize = 1000,q =」'xxx'in parents「,fields =」nextPageToken,files(id ,name)「)。execute()」

這對我有效。

相關問題