1

所有知道我不知道的事情的人:-)

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

我正在上传带有一些描述和可索引关键字的 JPEG。奇迹般有效。但是我不知道以后如何添加/修改元数据,而不创建文件的另一个实例。所以,当我添加一张带有“狗”描述的狗的照片时,我最终得到了我想要的东西。但是,如果我尝试使用以下任一方法修改元数据:

      gooFl = drvSvc.files().insert(meta).execute();

或者

      gooFl = drvSvc.files().insert(meta,null).execute();

我最终在 GOOGLE Drive 上得到了一个新文件(同名)。请参阅下面的代码片段:

    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()); 

这是我要问的“其他”分支。第一个文件有肉类数据“狗”,第二个文件有“迪克”。那么,有什么解决办法。我是否删除前一个实例(以及如何删除)?还有另一种我不知道的语法/方法吗?谢谢你,肖恩

4

2 回答 2

2

如果您需要修改元数据,请使用files.patch.

drvSvc.files().patch(id, meta).execute();

如果您需要同时修改元数据和文件内容,请使用files.update.

drvSvc.files().update(id, meta, content).execute();

插入发出的 POST 请求总是会创建新资源。

于 2013-04-16T07:52:16.587 回答
0

如果您只想更新元数据,则需要使用Files.Patch 。files().insert总是创建一个新文件。

完整的File命令列表和您需要使用的操作可以在API 参考中找到

于 2013-04-16T02:53:17.990 回答