如何通过Google Workspace API转移已删除用户的Google Drive所有权?
转移已恢复用户的Google Drive所有权(通过Google Workspace API)
前提条件
- 已通过Directory API完成目标用户恢复(你调用的接口:
https://admin.googleapis.com/admin/directory/v1/users/107598164438125043533/undelete) - 持有Google Workspace超级管理员权限,且已启用Drive API与Admin SDK
- 目标接收者为组织内活跃成员
具体操作步骤
1. 获取用户所有拥有所有权的Drive文件
调用Drive API的files.list接口,筛选出该用户作为所有者的文件。通过q参数指定用户邮箱,fields参数获取必要的文件ID与名称:
GET https://www.googleapis.com/drive/v3/files?q='恢复用户邮箱@你的域名.com' in owners&fields=files(id,name)
2. 逐个转移文件所有权
对每个文件,调用Drive API的files.update接口完成所有权转移。需注意:
- 仅支持转移给同组织内用户
- 必须携带
transferOwnership=true参数 - 请求体中指定新所有者邮箱
完整请求示例:
PATCH https://www.googleapis.com/drive/v3/files/{文件ID}?transferOwnership=true Content-Type: application/json { "owners": ["新所有者邮箱@你的域名.com"] }
3. 处理共享驱动器(若有)
如果恢复用户拥有共享驱动器的管理权限,需通过drives.update或permissions.create接口转移管理权:
- 方法一:更新共享驱动器权限ID
PATCH https://www.googleapis.com/drive/v3/drives/{共享驱动器ID} Content-Type: application/json { "permissionIds": ["新管理员权限ID"] }
- 方法二:添加新管理员权限
POST https://www.googleapis.com/drive/v3/drives/{共享驱动器ID}/permissions Content-Type: application/json { "type": "user", "role": "organizer", "emailAddress": "新所有者邮箱@你的域名.com" }
4. 验证转移结果
再次调用files.list或drives.get接口,确认文件/共享驱动器的所有者已更新为目标成员。
注意事项
- 所有权转移操作不可逆,执行前务必确认接收者信息正确
- 部分特殊文件类型(如Google Forms)可能无法直接转移所有权,需先转换格式或重新创建
- 批量操作建议编写脚本(如Python、Node.js)实现,提升效率
内容的提问来源于stack exchange,提问作者Sunny Sinha
相关产品推荐
相关产品推荐

