问题描述
我的情况:我已经在Google云端硬盘中创建了一个名为folder-root
的文件夹,并与同事共享了该文件夹。我的公司正在使用G-Suite进行业务。现在,我的其他团队成员已经开始在我的文件夹中上传文件和文件夹。
现在,我想将文件夹中创建/上传的所有文件和文件夹的所有权归我所有。
例如层次是
由于所有文件和文件夹都在我的云端硬盘文件夹中创建,因此我想拥有在该文件夹中创建的所有文件/文件夹的所有权。
该怎么做,我尝试使用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: '[email protected]'
}
});
}
解决方法
要转移文件(包括REST Google Drive API中称为文件的Google Drive文件夹)的所有权,应在文件所有者的许可下执行代码。可以使用OAuth而不是使用Node.js来完成此操作(或其他平台/编程语言使用Google Apps脚本,该脚本会在一定的限制下为您处理OAuth。
如果无法确定文件所有者进行所有权转移,则需要一个具有域范围授权的Google服务帐户来模拟他们。这要求G Suite管理员将此特权授予服务帐户。
另一个选择是G Suite管理员将那些用户的所有文件的所有权转移给另一个用户。如果您不是该用户,他们应该将文件的所有权转让给您。
如果您是G Suite管理员,则可以直接通过G Suite支持验证以上内容。
另一个选择是复制您不拥有的文件,然后从您的文件夹中删除他人拥有的文件。为了防止再次发生这种情况,请从编辑更改为查看文件夹的共享设置。这可以手动完成,也可以使用Google Drive API。
资源
- Transfer Drive files to a new owner(G Suite管理员的广泛文章)
- Transfer ownership of a file(无需编程)
相关