【问题标题】:Google Drive API just listing up to 100 files per folderGoogle Drive API 仅列出每个文件夹最多 100 个文件
【发布时间】:2015-02-11 19:37:20
【问题描述】:

我正在创建一个应用程序来使用 Python 备份存储在 Google Drive 中的文件。我遇到的第一个问题是,由于某种原因,它只在每个文件夹中列出多达 100 个文件。我想我使用了正确的范围('https://www.googleapis.com/auth/drive'),这是我用来列出文件夹内容的代码行

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 个,这还不够。

【问题讨论】:

    标签: python google-drive-api


    【解决方案1】:

    所有 REST API 对其输出列表进行分页是非常标准的。 Drive API 也不例外。您只需要监控 JSON 响应中是否存在 nextPageToken 并递归遍历后续页面。

    注意。不要犯一些错误,假设小于 MaxResults 的响应是最后一页。您应该完全依赖 nextPageToken。

    顺便说一句,一旦您在代码中进行了分页,请考虑将 maxResults 设置回其默认值。我怀疑非默认值的测试不太好,而且更容易超时。

    【讨论】:

    【解决方案2】:

    "结果 = service.files().list( pageSize = 1000, q="'xxx' in parents",fields="nextPageToken, files(id, name)").execute()"

    这对我有用。

    【讨论】:

      【解决方案3】:

      默认最大查询结果为100,必须使用pageToken/nextPageToken 重复查询。请参阅 Python Google Drive API - 列出整个驱动器文件树

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多