我正在使用Google Drive SDK的Java客户端。
应用程序目标:将所有文件的所有权转让给父所有者。通过这个,我的意思是有许多账户存储量很大,例如。 StorageAcct1,StorageAcct2等。如果用户将文件移动到该帐户,他们仍然保留所有权并导致存储损失。我希望我的应用程序在后台运行并将所有权转移到存储帐户。
我已将驱动器服务对象创建为StorageAcct1并对域进行了身份验证。我可以作为StorageAcct1进行身份验证并列出所有文件以及添加/删除编写器和查看者权限。但是,我无法转让所有权。这样,如果AppsUser1拥有Document1,即使该帐户被设置为超级管理员或云端硬盘管理员,StorageAcct1也无法获得所有权。
我注意到如果我创建一个新的服务对象作为所有者,我可以转移所有权。 (创建服务帐户为AppsUser1@domain.com以将Document1的所有权转移到StorageAcct1)。
由于权限API调用不会返回所有者的电子邮件和名称,因此我无法以编程方式浏览文件列表并转移所有权。我宁愿不必添加数据库来查找名称与电子邮件,并将其与Provisioning API联系起来。
感谢您的任何建议。
答案 0 :(得分:2)
如果新所有者与现有域名不同,则无法转让所有权,否则您应该能够修改所有者。
如果您有一个位于不同域的用户列表,并希望了解用户的域名以与其域名服务帐户匹配,请向userinfo请求检索他/她域:
GET https://www.googleapis.com/oauth2/v2/userinfo
{
"email": "email@domain.com",
"hd": "domain.com"
}
您仍然需要将域名与服务帐户匹配。