你们那些我不知道的事情的人:-)
我遇到了这个问题,实际上可能不是问题,只是我不知道自己在做什么的一个启示。再次!
我正在上传带有一些说明和可索引关键字的JPEG。奇迹般有效。但是我无法弄清楚以后如何添加/修改元数据,而不创建文件的另一个实例。因此,当我添加描述为“狗”的狗的图片时,最终得到了想要的东西。但是,如果我尝试使用以下任一方法修改元数据:
gooFl = drvSvc.files().insert(meta).execute();
要么
gooFl = drvSvc.files().insert(meta,null).execute();
我最终在GOOGLE云端硬盘上找到了一个新文件(同名)。
请参见下面的代码片段:
File meta = new File();
meta.setTitle("PicOfMyDog.jpg");
meta.setMimeType("image/jpeg");
meta.setParents(Arrays.asList(new ParentReference().setId(ymID)));
File gooFl = null;
if (bNewJPG == true) {
meta.setDescription("dog");
meta.setIndexableText(new IndexableText().setText("dog"));
gooFl = drvSvc.files().insert(meta,
new FileContent("image/jpeg", new java.io.File(fullPath("PicOfMyDog.jpg"))))
.execute();
} else {
meta.setDescription("dick");
meta.setIndexableText(new IndexableText().setText("dick"));
// gooFl = drvSvc.files().insert(meta).execute();
gooFl = drvSvc.files().insert(meta,null).execute();
}
if (gooFl != null)
Log.d("atn", "success " + gooFl.getTitle());
这是我要问的“其他”分支。第一个文件具有meatadata“狗”,第二个文件具有“ dick”。
那么,解决方案是什么。我是否要删除以前的实例(以及如何删除)?还有我不知道的另一种语法/方法吗?
谢谢你,肖恩
最佳答案
如果需要修改元数据,请使用files.patch
。
drvSvc.files().patch(id, meta).execute();
如果需要同时修改元数据和文件内容,请使用
files.update
。drvSvc.files().update(id, meta, content).execute();
插入使POST请求始终创建新资源。