Google Drive api v3(java):删除资源属性不起作用

时间:2018-04-18 21:35:01

标签: java google-drive-api

我正在使用Google Drive API for Java(v3-rev111-1.23)。我试图从资源中删除属性。 我按照这个文档:

https://developers.google.com/drive/v3/reference/files/update https://developers.google.com/drive/v3/web/migration#methods

这是我写的代码:

Drive service = getDriveService();
File file = new File();
Map<String,String> properties = new HashMap<>();
properties.put("propA", null);
file.setProperties(properties);

file = service.files().update(fileId, file).execute();

问题是该属性永远不会被清除。保留前一个值。

如果我用:

编写生成的json
System.out.println(service.files().update(fileId, file).getJsonContent());

我明白了:

{属性= {propA = NULL}}

使用相同的代码添加新属性,如:

properties.put("test", "yes");

我明白了:

{属性= {测试= YES}}

它运作正常。

有人面对并解决了这个问题吗?

我从2016年开始阅读这篇文章Google Drive Java API V3 delete custom property,但没有给出解决方案。

更多详情:

使用网络的try-it(https://developers.google.com/drive/v3/reference/files/update)我可以创建属性,修改它们甚至删除它们。

感谢。

1 个答案:

答案 0 :(得分:0)

以下是我可以分享的内容,可以帮助您,使用Try-it:

我使用Files.create创建了一个文件,并创建了一个自定义属性

appProperties{
  "supersaiyan": "yes"
}

然后我使用Files.update删除了它:

appProperties{
  "supersaiyan": null
}

当我尝试抓取appProperties时,我得到{},表示已成功删除。