是否有办法将文件夹或文件的所有权转移到另一个谷歌帐户?这里有哪些利弊?
进入"驱动器"或"文档"、"工作表"或"幻灯片"主屏幕。
打开共享框:
在驱动器中:选择文件或文件夹,然后单击顶部的共享图标。
在"文档"、"工作表"或"幻灯片"主屏幕中:打开文件,单击文件右上角的"共享"。
如果新的所有者已经拥有编辑权限,请跳转到步骤4。
否则,遵循以下步骤:
在"Invite people"字段中输入新所有者的电子邮件地址。
点击分享&保存。
(第4步):单击共享框右下角的高级。
单击您希望拥有该文件或文件夹的人员姓名旁边的下拉菜单。
Select Is owner。
点击 。
转让所有权后,您将以编辑器的身份访问该文件。
Google Apps客户:你不能让你的域名之外的人成为你的Google Doc的所有者。
只有政府和教育领域的Google Apps客户才能转移同步或上传文件(如PDF或图像文件)的所有权。
Consumer Drive用户:你不能转移已同步或上传文件(如PDF或图像文件)的所有权。
来源:support.google.com
目前将文件夹内的所有子文件夹和文件传输到另一个用户的唯一方法(除了在相同的Google Apps域的用户之间共享,其中有一个管理功能)是:
- 与其他帐户共享文件夹
- 将文件夹添加到另一个帐户的驱动器
- 在该文件夹上运行以下Google Apps脚本:
function copyfoldersrecursively() {
var name = "backup";
var rootfolders = DriveApp.getFoldersByName(name);
var newrootfolder = DriveApp.getRootFolder().createFolder(name+" NEW");
while (rootfolders.hasNext()) {
var rootfolder = rootfolders.next();
recursiveFolderCopy(rootfolder, newrootfolder);
}
function recursiveFolderCopy(folder, newfolder) {
copyFilesinFolder(folder, newfolder);
var subfolders = folder.getFolders();
while (subfolders.hasNext()) {
var subfolder = subfolders.next();
var newsubfolder = newfolder.createFolder(subfolder.getName());
recursiveFolderCopy(subfolder, newsubfolder);
}
}
function copyFilesinFolder(folder, newfolder) {
var files = folder.getFiles();
while (files.hasNext()) {
try {
var file = files.next();
var filename = file.getName();
file.makeCopy(filename, newfolder);
} catch(e) {
Logger.log(e);
}
}
}
}
注意:Google Apps Script API对于某些特殊的文件类型(如Maps)会失败。
目前google drive没有一个函数/api来改变文件的所有者和从一个用户转移配额到另一个用户。因此,我创建了一个colab脚本,它可以递归地转移文件的所有权,这些文件的所有权可以转移,然后从一个用户那里下载并从另一个用户那里重新加载所有其他文件。