你们那些我不知道的事情的人:-)

我遇到了这个问题,实际上可能不是问题,只是我不知道自己在做什么的一个启示。再次!

我正在上传带有一些说明和可索引关键字的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请求始终创建新资源。

09-25 16:00