首页 文章

使用Java客户端转移所有权

提问于
浏览
2

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

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

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

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

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

谢谢你的任何建议 .

1 回答

  • 2

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

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

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

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

相关问题