【问题标题】:Google Drive Api v3 does not allow deleting files of which I am the organizer of the shared driveGoogle Drive Api v3 不允许删除我是共享驱动器组织者的文件
【发布时间】:2021-08-03 15:29:18
【问题描述】:

基本上我有一个程序可以在共享驱动器上做一些事情。大约有 15 人每天同时上传一次音频文件。 与该程序关联的帐户是他们上传文件的共享驱动器的所有者。

当我告诉程序执行函数drive.files().delete(fileId=id).execute() 以在下载这些音频文件后删除这些音频文件时出现问题,但它引发了Permissions Error。\

我尝试上传自己的文件,然后尝试使用该功能将其删除,效果非常好。

所以我的结论是我必须是文件的所有者才能删除它们,但是在 Google Drive API wiki 中它说文件所在的共享驱动器的所有者帐户也可以删除它们,所以我很迷茫。 “永久删除用户拥有的文件而不将其移动到垃圾箱。如果文件属于共享驱动器,则用户必须是父级的组织者..” 链接:https://developers.google.com/drive/api/v3/reference/files/delete?hl=en

我现在不知道该尝试什么

【问题讨论】:

  • 当有人上传文件时,即使文件上传到共享云端硬盘,他们也是所有者。检查文件的权限,您将看到所有者是谁。
  • 是的,这就是问题所在。有没有办法改变他们上传的文件的所有权?因为我只能设置为文件的编辑器,但不能给我所有权
  • 他们需要给你所有权,只有所有者可以转让它。

标签: python google-drive-api google-drive-shared-drive


【解决方案1】:

如您提供的官方文档中所述,If the file belongs to a shared drive the user must be an organizer on the parent..。您需要拥有Manager 权限才能使用Files.delete() 删除不属于您的文件


注意:

删除共享云端硬盘上的文件时,不要忘记将supportsAllDrives 设置为truedrive.files().delete(fileId=id, supportsAllDrives=true).execute()

【讨论】:

  • 使用 api explorer 尝试过,我能够删除我拥有的共享驱动器中不属于我的文件
  • 这非常有用,谢谢。但我无法更改文件的所有权,也许有一个功能可以做到这一点?或者如何在没有所有者的情况下给我“经理”权限?
  • 进入你的共享驱动文件夹,选择view membersmanage members,看看你调用驱动api的账号是否有manager权限
  • 你也可以关注这个参考资料:Specific roles for shared drivesCreate a permission
  • 该账号拥有音频文件所在的文件夹,但它只是音频文件的编辑者,无法删除。现在我有一个问题,共享驱动器是什么意思?因为主文件夹位于我正在使用的帐户中的“我的驱动器”中,并且该文件夹内是我与其他用户共享的所有其他文件夹和音频。那么这是否是共享驱动器?我从未见过像“组织者”和“文件组织者”这样的“角色”。我只看到所有者、编辑者、查看者和评论者。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-29
  • 2016-07-31
  • 1970-01-01
  • 1970-01-01
  • 2021-08-04
  • 1970-01-01
相关资源
最近更新 更多