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',
即可解决问题。
我正在搜索的文件大多在我的域中。我不确定这种行为最近是否发生了变化,或者是否在代码中添加了这种约束,只是不记得这样做了。
前进。
我一直在用非常具体的约定命名云端硬盘文件,以便于从应用程序中搜索它们。 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',
即可解决问题。
我正在搜索的文件大多在我的域中。我不确定这种行为最近是否发生了变化,或者是否在代码中添加了这种约束,只是不记得这样做了。
前进。