2

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

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

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

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

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

感谢您的任何建议。

4

1 回答 1

2

如果新所有者与现有所有者位于不同的域中,则无法转移所有权,否则您应该能够修改所有者。

如果您有一个位于不同域的用户列表,并且想知道用户的域以将其与他的域的服务帐户匹配,请向 userinfo 发出请求以检索他/她的域:

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

不过,您仍然需要将域与服务帐户匹配。

于 2013-05-21T07:10:33.593 回答