我的 GOOGLE DRIVE SDK Android 应用程序还有另一个障碍要攀登。我正在上传具有严格控制的索引字段的扫描图像 - 用户从本地字典中定义的“标签”。例如 XXX.JPG 有索引词“汽车”+“保险”。这是一个简化的代码片段:
...
body.setTitle("XXX.JPG");
body.setDescription("car, insurance");
body.setIndexableText(new IndexableText().setText("car insurance"));
body.setMimeType("image/jpeg");
body.setParents(Arrays.asList(new ParentReference().setId(...)));
FileContent cont = new FileContent("image/jpeg", new java.io.File(fullPath("xxx.jpg")));
File gooFl = _svc.files().insert(body, cont).execute();
...
同样,一切都很好,除了当我开始搜索时,我得到的结果显然来自某些 OCR 后期处理,从而使我的系统的 DICTIONARY 无法使用。我假设我可以使用自定义 MIME 类型,但是对于使用标准 GOOGLE DRIVE 应用程序(本地、基于浏览器...)的用户来说,JPEG 图像变得不可见。所以问题是:我可以上传带有自定义索引(可索引或描述字段)的 MIME“图像/jpeg”文件,但阻止 GOOGLE 对我的文件进行 OCR 处理并添加我不打算拥有的索引吗?
更具体地说,我搜索“汽车保险”,而不是我以这种方式索引的 3 个文件,我得到一堆无法管理的其他结果(JPEG 扫描文档),其中某处有“汽车”和“保险”。不是我的应用想要的。
根据下面 Burcu 的建议,我将我的代码修改为如下所示的内容(剥离为裸露的骨头):
// define meta-data
File body = new File();
body.setTitle("xxx.jpg");
body.setDescription(tags);
body.setIndexableText(new IndexableText().setText(tags));
body.setMimeType("image/jpeg");
body.setParents(Arrays.asList(new ParentReference().setId(_ymID)));
body.setModifiedDate(DateTime.parseRfc3339(ymdGOO));
FileContent cont =
new FileContent("image/jpeg",new java.io.File(fullPath("xxx.jpg")));
String sID = findOnGOO(driveSvc, body.getTitle());
// file not found on gooDrive, upload and fix the date
if (sID == null) {
driveSvc.files().insert(body, cont).setOcr(false).execute();
driveSvc.files().patch(gooFl.getId(), body).setOcr(false).setSetModifiedDate(true).execute();
// file found on gooDrive - modify metadata and/or body
} else {
// modify content + metadata
if (contentModified) {
driveSvc.files().update(sID, body, cont).setOcr(false).setSetModifiedDate(true).execute();
// only metadata (tags,...)
} else {
driveSvc.files().patch(sID, body).setOcr(false).setSetModifiedDate(true).execute();
}
}
...
它是上传或修改 Google Drive 文件的块。两个非标准操作是:
1/ 重置文件的“修改”日期以强制创建文件的日期 - 已测试,工作正常
2/ 停止干扰我的应用程序索引方案的 OCR 进程 - 将很快测试并更新这里
为了简单起见,我没有包括“findInGOO()”方法的实现。这是非常简单的 2-liner,我可以根据要求提供
肖恩