【问题标题】:files.list() reproducibly returns incomplete list in "drive.files" scopefiles.list() 可重现地返回“drive.files”范围内的不完整列表
【发布时间】:2013-04-17 15:59:14
【问题描述】:

我们的应用程序需要用户文件和文件夹的完整列表。我们通过Javascript 库使用files.list()(与官方API reference 中显示的代码基本相同)。

我们使用“drive.files”范围。

检查对列表的响应,我们发现某些文件总是丢失。我做了各种测试来理解这个问题:

  • 文件明显存在。它们出现在Google Drive Webapp 中,如果我通过 ID 明确请求它们,我可以通过 API 毫无问题地获取它们。
  • 它是可重现的,总是丢失相同的文件。
  • 这不是暂时的。一天后我尝试了,但仍然缺少相同的文件。我知道 API 中有一些奇怪的效果会在一段时间后消失,但不是这个。
  • 这不是一次性的(例如,在上传过程中出现了一些奇怪的问题)。如果我再次使用完全不同的 Google 帐户重复文件丢失。在一个测试中的一小部分 147 个上传文件中,有 4 个被files.list 调用丢失,在另一个帐户上的相同 147 个文件的另一个测试中,有 23 个文件丢失。
  • 仅当我使用drive.files 范围时才会出现这种情况。如果我将范围放宽到drive,所有文件都会返回。如果查看 Google Drive Webapp 中的“详细信息”,那么丢失的文件也会显示为我们的应用程序创建的。所以他们似乎并没有不知何故失去了起源。
  • 当我指定搜索查询时也会发生这种情况。如果我使用搜索词“q: modifiedDate > '2012-06-04T12:00:00'”调用 files.list,它也应该返回所有文件,那么相同的文件会丢失。
  • 我重新实现了与 API 的纯 REST 调用相同的事情,以排除这是 Javascript 库的问题。错误仍然存​​在。

更新:我可以将其归结为分页和 maxResults 参数的问题。如果我使用不同的值,API 会返回不同数量的项目:

maxResults=100 我得到 100+100+7=207。

maxResults=99 我得到 99+99+28=226。

maxResults=101 我得到 101+101+0=202。

最后一个结果很有趣,它给了我一个nextLink,表示还有更多结果,但最后一个响应中的 items 数组实际上是空的。仅此一项就可能表明存在错误。

不过,这只发生在 drive.file 范围内,计数在整个 drive 范围内是一致的。

我很高兴听到有关解决方法的想法。我知道跟踪用户文件的其他方法,例如使用更改提要。我已经在使用它,但对于我们应用程序中的特定部分,我只需要用户帐户中所有应用程序项目的可靠且完整的列表。

另一个注意事项:我们之前在“drive.files”范围内遇到过其他问题(请参阅Listing files with search query returns out-of-scope results (drive.files.list call, using drive.files scope))。事实证明这是一个简单的解决方法。也许这个问题是相关的。

【问题讨论】:

  • 听起来像一个错误,我们正在研究它。
  • @BurcuDogan 有什么更新吗?有没有我可以不时查看的更改页面,看看是否已修复?
  • 这个问题有更新吗?在扩展我们的应用程序的 Google Drive 集成时,我们反复遇到这个文件列表不可靠的问题。
  • 仅供参考,带有下一个链接的空白页面是正常的,您应该使用下一个链接的存在,而不是结果大小,作为有更多结果要获取的指标。
  • @SteveBazyl 我明白这一点,这正是我正在做的。这只是一个旁注,奇怪的是有一个下一个链接但是当我真正得到这个页面时它是空的。这本身不会是问题。问题是,即使我关注所有下一个链接并收集所有结果,它也很难完成。根据 maxResults 参数,缺少不同的文件。真的没有人看到吗?我们有一个解决方法,将所有文件 ID 保存在我们的数据库中,并一个接一个地获取丢失的文件 ID。但这是我们代码中的数百个额外请求和大量开销。

标签: google-drive-api


【解决方案1】:

属于“共享给我”的文件和自己的文件/文件夹有什么区别,是我的问题吗? 它在 Google Drive 中的显示方式与我在没有正确标志的情况下搜索时得到的结果不同。

我在创建包含所有文件夹的文件列表时发现,我确实必须包括文件搜索范围的位置。 - 包括已删除的文件 - 包括共享给我的文件

【讨论】:

    猜你喜欢
    • 2011-09-04
    • 2023-03-14
    • 2019-06-07
    • 1970-01-01
    • 1970-01-01
    • 2020-09-22
    • 2019-12-25
    • 2011-11-05
    • 1970-01-01
    相关资源
    最近更新 更多