我有一个测试端点正在运行,当我将文件放入监视文件夹时,我收到一个带有标题X-Goog-Resource-State: update
的请求,但我似乎没有获得添加文件的ID。
X-Goog-Resource-Id
我认为可能是新文件,但如果我尝试get()
我就会得到404 X-Goog-Resource-Uri
,但这属于观看的文件夹X-Goog-Channel-Id
,但显然属于频道而不是文件X-Request-Id
,但这只是一个不透明的UUID 我是否需要在每次更新时获取已监视文件夹的完整文件列表,并与保存的列表进行比较?这感觉不对,但我不知所措。
非常感谢任何指导。
答案 0 :(得分:2)
今天有更好的办法吗?搜索到Drive API文档后,它似乎没有更改。
如果没有改变,我会再提出另一个想法。我最终可能会做的是创建2个文件夹,一个用于新项目,一个用于已处理项目。我将观看New Items文件夹,当收到通知时,我将处理文件夹中的所有文件并将它们移动到Processed Items文件夹。只是个人喜欢这个,但我宁愿不改变文件的属性或以任何方式修改它们我会有点偏执,如果我按时间创建它们我会不止一次处理一些文件或者某种程度上会在这里或那里被遗漏。
能够接收包含其ID的已添加文件的通知会很棒!
答案 1 :(得分:1)
我遇到了同样的情况,最终在watch channel的if (!strncmp(s, "question:", 9)) {
strncpy(content, s + 9, sizeof(content) - 1);
content[sizeof(content) - 1] = '\0'; /* in case the content was too long */
} else {
/* handle malformed string */
}
字段中传递了已观看的文件夹(文件)ID。发生事件时,我会获取该文件夹中包含的文件列表。我没有必要与任何其他列表进行比较,因为所有新文件都不归我的默认帐户所有,因此很容易找到它们,但在您的情况下,您可以在最后几秒/分钟内创建search for files或者对所有已处理的文件使用private property并搜索缺少该属性的所有文件。