【问题标题】:files.list behavior seems to have changedfiles.list 的行为似乎已经改变
【发布时间】:2023-03-16 01:03:01
【问题描述】:

我一直使用非常具体的约定来命名云端硬盘文件,以便于从应用中搜索它们。 v3 Drive API (files.list) 中的搜索功能在三周前一直在工作,但后来停止工作。

例如,使用以下文件,

“ABC-123 模板”、“ABC-123 gogo”、“ABC-123 bobo”

... 使我能够使用

通过 API 进行搜索
name contains 'ABC-123'

此搜索应返回所有三个文件。相反,它不返回任何结果。请注意,Drive Web 界面中的相同查询是成功的,并且约定遵循documentation 中规定的规则。

这工作正常,但现在停止了。搜索 API 有变化吗?!我可以找到其他具有实现的文件,而不是那些使用命名约定的文件。

这是 NodeJS 中请求的完整代码 sn-p。

Google.prototype.findFiles = function(file_prefix, callback) {
  var service = google.drive('v3');
  service.files.list({
    q: "name contains '" + file_prefix + "'",
    fields: 'nextPageToken, files(id, name)',
    spaces: 'drive',
    corpus: 'domain',
    auth: this.auth
  }, function(err, response) {
    if(err) {
      console.log('Error : findFiles failed. ' + err);
      callback(err);
    } else {
      callback(null,response.files);
    }
  });
};

【问题讨论】:

  • 我发现当我使用 Google 的 API Explorer 时,这个请求确实有效。感觉就像我在控制台上的 Google 项目配置存在配置问题。
  • ^^ 原来 不是 是这种情况,但它让我在下面得到了答案。
  • 当您将name contains 'ABC-123' 输入developers.google.com/drive/v2/reference/files/list 的q 字段时,我得到error 400, invalid query

标签: google-drive-api


【解决方案1】:

根本原因原来是语料库值。由于文档中不清楚的原因,使用 corpus=domain 会阻止搜索工作。

从上述代码示例中删除corpus: 'domain', 即可解决问题。

我正在搜索的文件在我的域中非常多。我不确定这种行为最近是否发生了变化,或者是否在代码中添加了这个约束并且根本不记得这样做了。

向前。

【讨论】:

    猜你喜欢
    • 2020-03-09
    • 2016-04-05
    • 2021-07-28
    • 1970-01-01
    • 1970-01-01
    • 2013-05-28
    • 2017-10-15
    • 2012-10-10
    • 2021-04-20
    相关资源
    最近更新 更多