跨域跨组织Google Drive文件转移遇“选择搜索结果用户”错误求助
跨组织Google Drive文件全量转移方案
Google原生的「转移所有权」功能仅支持同一域名/组织内部的用户操作,跨不同域名或独立组织的账号无法直接使用该功能,这就是你遇到「Error: Select a user from search results」报错的原因。以下是几种可行的跨账号转移方案:
方法一:共享+手动复制(适合中小文件量)
- 源账号将所有文件/文件夹设置为共享给目标账号,权限选择「编辑」
- 目标账号登录后,打开共享内容,全选文件/文件夹,右键选择「添加到我的云端硬盘」;若需要完全获取所有权,可选择「复制」(复制后的文件所有权归目标账号)
- 注意:受版权保护的文件(如付费文档、受限共享内容)无法直接复制,需源账号单独调整权限或联系内容提供方。
方法二:Takeout导出+重新上传(适合全量转移)
- 源账号操作:
- 打开Google Takeout,仅勾选「Google云端硬盘」,可选择全量或特定文件夹导出
- 设置导出格式为ZIP,分卷大小建议选10GB(适配多数存储工具),交付方式选邮箱接收下载链接
- 等待导出完成后,下载所有压缩包到本地或中转存储
- 目标账号操作:
- 登录Google Drive,创建新的存储文件夹
- 解压下载的压缩包,批量上传到目标文件夹;超过10GB的大文件建议使用Google Drive桌面客户端上传
- 注意:导出后文件的修改时间会变为上传时间,若需保留原时间,可使用Drive桌面客户端的同步功能完成上传。
方法三:Apps Script批量处理(适合技术使用者)
通过脚本批量将源账号的文件/文件夹共享给目标账号,再由目标账号批量复制:
- 源账号打开Google Apps Script,新建项目
- 粘贴以下代码,替换
目标账号邮箱为实际地址:
function transferFiles() { const targetEmail = "your-target-email@domain.com"; const rootFolder = DriveApp.getRootFolder(); // 可替换为特定文件夹ID,如DriveApp.getFolderById("folder-id") // 递归处理所有文件夹和文件 function processItem(parent) { // 处理当前文件夹下的文件 const files = parent.getFiles(); while (files.hasNext()) { const file = files.next(); file.addEditor(targetEmail); } // 处理子文件夹 const folders = parent.getFolders(); while (folders.hasNext()) { const folder = folders.next(); folder.addEditor(targetEmail); processItem(folder); } } processItem(rootFolder); }
- 运行脚本并完成授权,等待脚本执行完毕
- 目标账号登录后,批量将共享内容复制到自己的云端硬盘即可
- 注意:Google Apps Script有API调用频次限制,超大文件量需分多次运行脚本。
内容的提问来源于stack exchange,提问作者Paul
相关产品推荐
相关产品推荐

