【问题标题】:Google drive API - orderBy very slow谷歌驱动 API - orderBy 非常慢
【发布时间】:2017-11-27 10:55:20
【问题描述】:

(Note: This is a self-answering question)

我注意到orderBy folder,title 很慢,我该怎么办?

$ time curl 'https://content.googleapis.com/drive/v2/files?maxResults=10&orderBy=folder%2Ctitle&q=%27root%27%20in%20parents%20and%20trashed%3Dfalse&key=XXX' --compressed -H 'Authorization: Bearer XXX' -H 'X-Origin: https://explorer.apis.google.com'  -H 'If-None-Match: "XXX"'

大约需要 11 秒才能完成:

real    0m11.356s
user    0m0.008s
sys     0m0.016s

您可以test in API Explorer。查询是:

  • 最大结果:10
  • ordeBy:文件夹、标题
  • q: 'root' 在父母和垃圾=false

【问题讨论】:

  • @DaImTo 这显然是 google API v2 的问题,因为当 q 为空时将 orderBy 从 folder,title 更改为 title,folder 会将时间从 12 秒缩短到 1 秒。
  • 如果您有一些统计数据,您可能想在问题论坛issuetracker.google.com/issues?q=componentid:191650%2B 上发布此信息。我怀疑这将很难证明,因为它可能只是您的连接、数据量或许多其他因素的问题。注意:我认为 v2 不再有任何开发。所以我认为你真的无能为力。
  • @DaImTo 我在issuetracker.google.com/issues/69785597提交了一个错误报告
  • 我对通过自我回答来帮助社区感到非常失望(它确实解决了我的问题),而我得到的是反对票。请记住,接受自我回答不会赢得任何声誉。

标签: google-drive-api google-drive-android-api


【解决方案1】:

(Note: I'm self-answering my question)

API v3 正在运行,如果可能,请考虑从 v2 迁移。它将减少到title在v3中称为name,v2中的maxResults在v3中称为pageSize):

$ time curl 'https://content.googleapis.com/drive/v3/files?orderBy=folder%2Cname&pageSize=10&q=%27root%27%20in%20parents%20and%20trashed%3Dfalse&key=XXX' --compressed  -H 'Authorization: Bearer XXX' -H 'X-Requested-With: XMLHttpRequest' -H 'X-Origin: https://explorer.apis.google.com'
...
real    0m0.674s
user    0m0.024s
sys     0m0.004s

在 v3 中,您还需要指定 fields,例如(点击“显示标准参数”展开“Try-it API explorer”中的字段表单):

files(kind,id,name,size,mimeType,thumbnailLink)

更多:Migrate to Google Drive API v3 from Google Drive API v2

【讨论】:

  • @DaImTo 这建议迁移到 v3 以解决问题。您在否决之前尝试过请求吗?
  • 最初的问题是关于 Google Drive v2 建议 v3,不会解决 v2 的问题。 IMO 这并没有真正回答这个问题。也许将其添加为原始问题的评论
  • @UrbanEsc 我在自我回答我的问题。我在创建这个问题之前找到了答案,因为互联网上还没有解决方案。
  • @DaImTo 迁移到 v3 以解决 v2 问题是一个有效的解决方案,即使不是最好的,但作为开发人员,您没有选择等待 Google 修复它之前发布我的应用程序,更不用说他们可能永远不会费心修复旧的 API。我在 Youtube API 上遇到了困难,我知道他们的风格。
  • 希望你们理解,11 秒的延迟在用户看来是不可接受的。我必须修复它,但我应该永远等待谷歌吗?这个答案是提醒您 v3 正在运行的解决方法,如果可能,请考虑迁移。
猜你喜欢
  • 1970-01-01
  • 2012-07-04
  • 1970-01-01
  • 2023-03-07
  • 2014-09-03
  • 2012-06-03
  • 2023-04-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多