使用API获得在google驱动器中我的文件夹中创建的所有文件和文件夹的所有权



我的场景:我在Google Drive中创建了一个名为folder-root的文件夹,并与同事共享了该文件夹。我的公司正在使用G-Suite进行商务活动。现在,我的其他团队成员已经开始上传我文件夹中的文件和文件夹。现在我想把我文件夹内创建/上传的所有文件和文件夹的所有权都交给我。

例如,层次结构是

  • 文件夹根目录--我是所有者
    • 文件夹-1--Bob是所有者
      • 文件-1--Bob是所有者
    • 文件夹2-Alice是所有者
      • file-2——Alice是所有者
    • 文件3——结婚是主人

因为所有文件和文件夹都是在我的驱动器文件夹中创建的,所以我想拥有在我的文件夹中创建所有文件/文件夹的所有权。

如何做到这一点,我已经尝试使用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转移所有权

最新更新