我正在尝试将文件的所有权转让给超级管理员。代码的基本部分如下所示。如果我转让我拥有的文档的所有权,则相同的代码可以工作。但在这种情况下,原始所有者是同一域中的另一个用户。[编辑]我知道管理面板中有一个“将文件的所有权从 1 用户转移到另一个”,但这对于需要来自多个所有者的多个文件/文件夹的情况是必需的以编程方式传输。[/编辑]
所以简单的场景是:
- user@domain.com拥有一个文件
- 所有权需要转移到admin@domain.com(超级管理员)。该代码在 Java Servlet 中的 AppEngine 中运行。超级管理员通过 OAuth 进行身份验证。
但是它总是会抛出(500 OK)异常update.execute();
(最后显示)。即使是超级管理员也无法进行此操作吗?
感谢您的任何提示!
try {
Drive service = getDriveService();
Permission newPerm = new Permission();
newPerm.setValue("admin@domain.com");
newPerm.setType("user");
newPerm.setRole("writer");
newPerm = service.permissions().insert(fileId, newPerm).execute();
newPerm.setRole("owner");
Update update = service.permissions().update(fileId, newPerm.getId(), newPerm);
update.setTransferOwnership(true);
update.execute();
} catch (IOException e) {
e.printStackTrace();
log.severe(e.getMessage());
}
抛出的异常如下所示:
SEVERE: 500 OK
{
"code" : 500,
"errors" : [ {
"domain" : "global",
"message" : "Internal Error",
"reason" : "internalError"
} ],
"message" : "Internal Error"
}