我的场景:我在Google Drive中创建了一个名为folder-root
的文件夹,并与同事共享了该文件夹。我的公司正在使用G-Suite进行商务活动。现在,我的其他团队成员已经开始上传我文件夹中的文件和文件夹。现在我想把我文件夹内创建/上传的所有文件和文件夹的所有权都交给我。
例如,层次结构是
- 文件夹根目录--我是所有者
- 文件夹-1--Bob是所有者
- 文件-1--Bob是所有者
- 文件夹2-Alice是所有者
- file-2——Alice是所有者
- 文件3——结婚是主人
- 文件夹-1--Bob是所有者
因为所有文件和文件夹都是在我的驱动器文件夹中创建的,所以我想拥有在我的文件夹中创建所有文件/文件夹的所有权。
如何做到这一点,我已经尝试使用Google API的v3,但我得到了一个错误:Bad Request. User message: "Sorry, you do not have permission to share."
当我使用bob、Alice或已婚的文件id和我的电子邮件地址时,就会收到这条消息
代码在node.js 中
function transferOwnerShip(auth) {
const drive = google.drive({version: 'v3', auth});
drive.permissions.create({
fileId: '1_o-rhbFinu1_LZYniFNo1gV0Epv5mYU5',
transferOwnership: 'true',
resource: {
role: 'owner',
type: 'user',
emailAddress: 'my-name@company.com'
}
});
}
要转移文件(包括Google Drive文件夹,在REST Google Drive API中称为文件(的所有权,应使用文件所有者的权限执行代码。这可以使用OAuth来完成,而不是使用Node.js(或其他平台/编程语言使用谷歌应用程序脚本,该脚本在有一些限制的情况下为您处理OAuth
如果你不能让文件所有者进行所有权转移,你将需要一个具有全域授权的谷歌服务帐户来模拟他们。这需要G Suite管理员将此权限授予服务帐户。
另一种选择是G Suite管理员将这些用户的所有文件的所有权转移给另一个用户。如果你不是那个用户,他们应该将文件的所有权转移给你。
如果您是G Suite管理员,您可以直接通过G Suite支持验证上述内容。
另一种选择是复制你不拥有的文件,然后从你的文件夹中删除其他人拥有的文件。为了防止这种情况再次发生,请将文件夹的共享设置从"编辑"更改为"查看"。这可以手动完成,也可以使用Google Drive API。
资源
- 将驱动器文件传输给新所有者(适用于G Suite管理员的宽泛文章(
- 转移文件所有权(无编程(
相关
- 在Google Apps脚本中将文件的所有权转移给另一个用户
- 如何强制文件夹中的所有文件归Google Drive中的文件夹所有者所有
- 取得其他用户的所有权使用谷歌应用程序脚本驱动文件
- Google Drive:如何使用Python SDK转移所有权