我一直在使用非常具体的约定来命名Drive文件,以便于从应用程序中搜索它们。 v3 Drive API(files.list)中的搜索功能最近已在三周前开始工作,并且此后一直停止工作。
例如,使用以下文件
“ABC-123模板”,“ABC-123 gogo”,“ABC-123 bobo”
...让我可以通过API搜索
name contains 'ABC-123'
此搜索应返回所有三个文件。相反,它不返回任何结果。请注意,Drive Web界面中的相同查询是成功的,并且约定遵循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);
}
});
};
答案 0 :(得分:0)
根本原因证明是语料库价值。由于文档中不清楚的原因,使用corpus = domain会阻止搜索工作。
从上面的代码示例中删除corpus: 'domain',
可以解决问题。
我正在搜索的文件非常属于我的域名。我不确定最近这种行为是否发生了变化,或者是否在代码中添加了这种约束,并且根本不记得这样做。
冠。