如何以编程方式从谷歌云端硬盘的“与我共享”中删除文件

3

在全盘范围内执行以下命令

var request = service.Files.Delete(fileId);

导致不足的权限错误。

从谷歌云端硬盘“与我共享”文件夹中尝试删除文件时。

当用户登录但实际上没有权限删除不属于他们的文件时,如何从“与我共享”中删除文件?

1个回答

3

问题在于相关用户并不拥有该文件。经过大量挖掘,我意识到您想要做的是在该文件上移除该用户权限。

首先需要执行当前用户的 about.get 命令:

return service.About.Get().Execute();

这将给你该用户的权限id:

"permissionId": "060305882255734372",

完成后,您可以针对该用户在文件上执行permissions.get操作:

var response = service.Permissions.Get(fileId, permissionId).Execute();

响应

{
 "kind": "drive#permission",
 "id": "06030588225573437",
 "type": "user",
 "role": "writer"
}

这将为您提供有关特定用户在文件上的权限ID。

然后,您可以使用permission.delete删除该用户在文件上的权限。

var response = service.Permissions.Delete(fileId, permissionId).Execute();

1
似乎只有当文件的所有者将我指定为编辑器时,它才能正常工作。如果我只是一个查看者,在尝试对与我共享的文件执行permissions.get、permissions.list和permissions.delete操作时,会不断收到403错误“权限不足”。这是真的吗? - user1548418
如果您的权限是只读的话,我不会指望删除操作能够成功执行。 - Linda Lawton - DaImTo
permissions.list()和permissions.get()也不适用于查看者角色用户。此外,即使对于permissions.delete(),我们也不会删除文件本身,只会删除文件的权限,即放弃查看文件的权限。在原生的Google Drive UI中,它可以正常工作 - 即使您的角色是“查看者”,您也可以从“与我共享”伪文件夹中“删除”任何文件,这实际上意味着删除权限。 - user1548418

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接