使用Java客户端转移所有权

时间:2013-05-21 01:24:44

标签: java google-drive-api

我正在使用Google Drive SDK的Java客户端。

应用程序目标:将所有文件的所有权转让给父所有者。通过这个,我的意思是有许多账户存储量很大,例如。 StorageAcct1,StorageAcct2等。如果用户将文件移动到该帐户,他们仍然保留所有权并导致存储损失。我希望我的应用程序在后台运行并将所有权转移到存储帐户。

我已将驱动器服务对象创建为StorageAcct1并对域进行了身份验证。我可以作为StorageAcct1进行身份验证并列出所有文件以及添加/删除编写器和查看者权限。但是,我无法转让所有权。这样,如果AppsUser1拥有Document1,即使该帐户被设置为超级管理员或云端硬盘管理员,StorageAcct1也无法获得所有权。

我注意到如果我创建一个新的服务对象作为所有者,我可以转移所有权。 (创建服务帐户为AppsUser1@domain.com以将Document1的所有权转移到StorageAcct1)。

由于权限API调用不会返回所有者的电子邮件和名称,因此我无法以编程方式浏览文件列表并转移所有权。我宁愿不必添加数据库来查找名称与电子邮件,并将其与Provisioning API联系起来。

感谢您的任何建议。

1 个答案:

答案 0 :(得分:2)

如果新所有者与现有域名不同,则无法转让所有权,否则您应该能够修改所有者。

如果您有一个位于不同域的用户列表,并希望了解用户的域名以与其域名服务帐户匹配,请向userinfo请求检索他/她域:

GET https://www.googleapis.com/oauth2/v2/userinfo
{
  "email": "email@domain.com",
  "hd": "domain.com"
}

您仍然需要将域名与服务帐户匹配。