2016-11-22 61 views
0

我正在使用带有服务帐户的Java Google Drive API,并且想要删除自己设置的服装属性。Google Drive Java API V3删除自定义属性

https://developers.google.com/drive/v3/web/migration我读到我需要用一个映射文件更新文件,在这个映射文件中我使用了一个空值的键。

(files.update with {'properties':{'key':null}})

我的代码看起来是这样的:

File body = new File(); 
Map<String, String> map = new HashMap<>(); 
map.put(propertyName, null); 
body.setProperties(map); 
service.files().update(fileId, body).execute(); 

的JSON内容{properties={test=null}}

上面的代码工作没有任何异常,但物业仍设置。我如何删除该财产?

+0

您可以尝试使用['文件:update']更新文件(https://开头如果它适用于您的情况,请参阅developers.google.com/drive/v3/reference/files/update)。在文档中声明,“属性”是任意键值对的集合,对所有应用程序都是可见的。并且在更新和复制请求中清除具有空值的条目。另一种可能的方式是使用Drive API的v2,在其中可以选择[删除属性](https://developers.google.com/drive/v2/reference/properties/delete)。希望它可以帮助你。 – KENdi

+0

我试图用新的元数据更新文件,但不确定的是它不影响属性。更新调用没有任何问题。我可以更新该值,但在将值设置为null时,它不会删除该属性。 –

+0

哦,我需要为这个项目使用版本3,因此我不能使用API​​的第2版。 –

回答

0

Fromapi V2到v3在删除,更新属性和一些其他函数调用时几乎没有更改。请验证
https://developers.google.com/drive/v3/web/migration#methods
在此页面,您可以找到 properties.delete,properties.get和properties.insert
为deleteproperties在V3
PRIVATE:files.update与{ 'appProperties':{ '关键':空} }
PUBLIC:files.update与{ '属性':{ '关键':空}}

感谢