files.list 行为似乎已经改变

files.list behavior seems to have changed

我一直在用非常具体的约定命名云端硬盘文件,以便于从应用程序中搜索它们。 v3 驱动器 API (files.list) 中的搜索功能最近在三周前一直在运行,此后停止运行。

例如,使用以下文件,

"ABC-123 template"、"ABC-123 gogo"、"ABC-123 bobo"

... 使我能够通过 API 和

进行搜索
name contains 'ABC-123'

此搜索应该 return 所有三个文件。相反,它 return 没有结果。请注意,Drive 网络界面中的相同查询是成功的,并且约定遵循 documentation 中规定的规则。

这一直有效,现在停止了。搜索 API 变了吗?!我可以找到其他带有实现的文件,但不是那些使用命名约定的文件。

这是 NodeJS 中请求的完整代码片段。

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);
    }
  });
};

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

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

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

前进。